इस प्रोग्राम में हमें सरणी में खोज अनुक्रम के अस्तित्व को खोजने के लिए बाइनरी सर्च लागू करने की आवश्यकता है। बाइनरी सर्च की समय जटिलता O(log n) है।
आवश्यक चरण और छद्म कोड
शुरुआत BinarySearch() फ़ंक्शन में 'arr' डेटा की सरणी और 'n' मानों की संख्या, प्रारंभ और अंत इंडेक्स, इटरेशन काउंट और b[0] खोजे जाने वाले एलिमेंट आर्गुमेंट सूची में होते हैं। इटरेशन काउंटर बढ़ाएं और आइटम मान की तुलना a[mid] से करें। यदि आइटम < a[mid] तो पहला आधा चुनें अन्यथा आगे बढ़ने के लिए दूसरा आधा चुनें। इंडेक्स मान को मेन पर लौटाएं। मेन() में, खोज अनुक्रम के शेष आइटम्स की तुलना सरणी में अगले आइटम्स से क्रमिक रूप से करें। मिले अनुक्रम की इंडेक्स रेंज प्रिंट करें। अंत।
उदाहरण कोड
#include<iostream> using namespace std; int BinarySearch(int a[], int start, int end, int item, int iter) { int i, mid; iter++; mid = start+ (end-start+1)/2; if(item > a[end] || item < a[start] || mid == end) { cout<<"\nनहीं मिला"; return -1; } else if(item == a[mid]) { return mid; } else if(item == a[start]) { return start; } else if(item == a[end]) { return end; } else if(item > a[mid]) BinarySearch(a, mid, end, item, iter); else BinarySearch(a, start, mid, item, iter); } int main() { int n, i, flag=0, Bin, len = 9, a[10]={1, 7, 15, 26, 29, 35, 38, 40, 49, 51}; cout<<"\nखोज अनुक्रम में एलिमेंट की संख्या दर्ज करें: "; cin>>n; int b[n]; for(i = 0; i < n; i++) { cin>>b[i]; } Bin = BinarySearch(a, 0, len, b[0], 0); if (Bin == -1) { cout<<"\nनहीं मिला।"; return 0; } else { for(i = Bin; i < n+Bin; i++) if(a[i] != b[i-Bin]) flag = 4; if(flag == 4) cout<<"\nनहीं मिला।"; else cout<<"\nअनुक्रम इंडेक्स "<<Bin<<" और "<<Bin+n<<" के बीच मिला।"; } return 0; } आउटपुट
खोज अनुक्रम में एलिमेंट की संख्या दर्ज करें: 4 15 26 29 35 अनुक्रम इंडेक्स 2 और 6 के बीच मिला।