বাইনারি অনুসন্ধানে একটি স্ট্রিং, আমাদের স্ট্রিংগুলির একটি সাজানো অ্যারে দেওয়া হয় এবং আমাদের বাইনারি অনুসন্ধান অ্যালগরিদম ব্যবহার করে স্ট্রিংগুলির অ্যারেতে একটি স্ট্রিং অনুসন্ধান করতে হয়৷
উদাহরণ
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