কম্পিউটার

C++ এ একটি স্ট্রিং বাইনারি অনুসন্ধান করুন


বাইনারি অনুসন্ধানে একটি স্ট্রিং, আমাদের স্ট্রিংগুলির একটি সাজানো অ্যারে দেওয়া হয় এবং আমাদের বাইনারি অনুসন্ধান অ্যালগরিদম ব্যবহার করে স্ট্রিংগুলির অ্যারেতে একটি স্ট্রিং অনুসন্ধান করতে হয়৷

উদাহরণ

Input : stringArray = {“I”, “Love”, “Programming”, “tutorials”, “point”}.
Element = “programming”
Output : string found at index 3
Explanation : The index of string is 3.
Input : stringArray = {“I”, “Love”, “Programming”, “tutorials”, “point”}.
Element = “coding”
Output : -1 ‘string not found’

বাইনারী অনুসন্ধান এটি অনুসন্ধানের কৌশল যা উপাদান খুঁজে পাওয়ার জন্য অ্যারের মাঝখানে খুঁজে বের করে কাজ করে।

স্ট্রিংগুলির অ্যারের জন্যও বাইনারি অনুসন্ধান অ্যালগরিদম একই থাকবে। কিন্তু যে তুলনা করা হয় তা হবে স্ট্রিং তুলনার উপর ভিত্তি করে। স্ট্রিং তুলনা স্ট্রিংগুলির প্রথম অক্ষরটি পরীক্ষা করুন এবং এটি তুলনা করুন। অক্ষরগুলি একই, তারপর এটি পরবর্তীতে যায় এবং আরও অনেক কিছু৷

অ্যালগরিদম

arrString : array of sorted strings
Lower = 0 ; upper = n (length of array)
Element = string that is to be found
Step 1 : while element is not found. Do :
Step 2 : mid = lower + (upper - lower) / 2 ;
Step 3 : if arrString[mid] = element , return mid and exit
Step 4 : if arrString[mid] < element, lower = mid+1
Step 5 : if arrString[mid] > element, upper = mid-1
Step 6 : upper < lower , return -1, exit.

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
int binarySearchString(string arr[], string x, int n) {
   int lower = 0;
   int upper = n - 1;
   while (lower <= upper) {
      int mid = lower + (upper - lower) / 2;
      int res;
      if (x == (arr[mid]))
         res = 0;
      if (res == 0)
         return mid;
      if (x > (arr[mid]))
         lower = mid + 1;
      else
         upper = mid - 1;
   }
   return -1;
}
int main () {
   string arr[] = {"I", "Love", "Programming" , "tutorials" , "point"};
   string x = "Programming";
   int n = 4;
   int result = binarySearchString(arr, x, n);
   if(result == -1)
      cout<<("Element not present");
   else
      cout<<("Element found at index ")<<result;
}

আউটপুট

Element found at index 2

  1. C++ এ বাইনারি সার্চ ট্রি ইটারেটার

  2. C++ এ বাইনারি ট্রি থেকে বাইনারি সার্চ ট্রি কনভার্সন

  3. C++ প্রোগ্রামে বাইনারি অনুসন্ধান?

  4. C# এ বাইনারি অনুসন্ধান