स्ट्रिंग में बाइनरी सर्च में, हमें स्ट्रिंग्स का एक सॉर्टेड ऐरे दिया जाता है और हमें बाइनरी सर्च एल्गोरिदम का उपयोग करके स्ट्रिंग्स के ऐरे में एक स्ट्रिंग को खोजना होता है।
उदाहरण
इनपुट: stringArray = {"I", "Love", "Programming", "tutorials", "point"}.
एलिमेंट = "programming"
आउटपुट: स्ट्रिंग इंडेक्स 3 पर मिली
व्याख्या: स्ट्रिंग का इंडेक्स 3 है।
इनपुट: stringArray = {"I", "Love", "Programming", "tutorials", "point"}.
एलिमेंट = "coding"
आउटपुट: -1 'स्ट्रिंग नहीं मिली' बाइनरी सर्च एक खोज तकनीक है जो ऐरे के मध्य को ढूंढकर एलिमेंट को खोजती है।
स्ट्रिंग्स के ऐरे के लिए भी बाइनरी सर्च एल्गोरिदम समान रहेगा। लेकिन की जाने वाली तुलनाएं स्ट्रिंग तुलना पर आधारित होंगी। स्ट्रिंग तुलना स्ट्रिंग्स के पहले कैरेक्टर की जांच करती है और उनकी तुलना करती है। यदि कैरेक्टर समान हैं तो यह अगले पर जाता है और इसी तरह।
एल्गोरिदम
arrString: सॉर्टेड स्ट्रिंग्स का ऐरे Lower = 0; upper = n (ऐरे की लंबाई) Element = खोजी जाने वाली स्ट्रिंग चरण 1: जब तक एलिमेंट नहीं मिल जाता। करें: चरण 2: mid = lower + (upper - lower) / 2; चरण 3: यदि arrString[mid] = element, mid लौटाएं और बाहर निकलें चरण 4: यदि arrString[mid] < element, lower = mid+1 चरण 5: यदि arrString[mid] > element, upper = mid-1 चरण 6: upper < lower, -1 लौटाएं, बाहर निकलें।
उदाहरण
#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