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