বাইনারি অনুসন্ধান পদ্ধতি শুধুমাত্র সাজানো তালিকায় প্রয়োগ করা যেতে পারে। প্রদত্ত তালিকা দুটি সমান ভাগে বিভক্ত। তালিকায়, কীটিকে মধ্যম উপাদানের সাথে তুলনা করা হয়।
বাইনারি অনুসন্ধানে তিনটি পরিস্থিতি ঘটতে পারে যা নিম্নরূপ -
-
যদি মাঝের উপাদানটি কীটির সাথে মিলে যায়, তাহলে অনুসন্ধানটি এখানে সফলভাবে শেষ হবে
-
যদি মাঝের উপাদানটি কী থেকে বড় হয়, তাহলে অনুসন্ধানটি বাম পার্টিশনে এগিয়ে যাবে
-
যদি মাঝের উপাদানটি কী থেকে কম হয়, তাহলে অনুসন্ধানটি ডান পার্টিশনে এগিয়ে যাবে।
ইনপুট (i/p)
উপাদানের সাজানো তালিকা, কী।
আউটপুট (o/p)
- সফল - যদি চাবি পাওয়া যায়।
- অসফল - অন্যথায়।
উদাহরণ
বাইনারি অনুসন্ধান পদ্ধতি -
এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h>
int main(){
int a[50], n, i, key, flag = 0, low, mid, high;
printf("enter the no: of elements:");
scanf ("%d",&n);
printf("enter the elements:");
for(i=0; i<n; i++)
scanf( "%d", &a[i]);
printf("enter a key element:");
scanf ("%d", &key);
low = 0;
high = n-1;
while (low<= high ){
mid = (low + high) /2;
if (a[mid] == key){
flag = 1;
break;
} else {
if (a[mid] > key)
high = mid-1;
else
low = mid+1;
}
}
if (flag == 1)
printf ("search is successful");
else
printf("search is unsuccessful");
return 0;
} আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
enter the no: of elements:5 enter the elements:23 45 57 89 90 enter a key element:45 search is successful