Binary Search is one of the most efficient searching algorithm due to its better time complexity with O(log N). The working process of binary search is simple.
1. All the elements must be in sorted order.
2. Find the MID element, compare the MID element with given Key.
3. If Key matched with MID, return.
4. If Key is less than the MID, go ahead with Left sub array and start from step 2.
5. If Key is Greater than the MID, go ahead with right sub array and start from step 2.
6. Repeat this process until you found a key or return with no key found.
//Program Name: BinarySearch.c
#include<stdio.h>
int main()
{
int c, first, last, middle, n, search, array[100];
printf("Enter number of elements\n");
scanf("%d",&n);
printf("Enter %d integers\n", n);
for ( c = 0 ; c < n ; c++ )
scanf("%d",&array[c]);
printf("Enter value to find\n");
scanf("%d",&search);
first = 0;
last = n - 1;
middle = (first+last)/2;
while( first <= last )
{
if ( array[middle] < search )
first = middle + 1;
else if ( array[middle] == search )
{
printf("%d found at location %d.\n", search, middle+1);
break;
}
else
last = middle - 1;
middle = (first + last)/2;
}
if ( first > last )
printf("Not found! %d is not present in the list.\n", search);
return 0;
}
Binary Search Program in C using Recursive and Non-Recursive Methods help you to solve the problem using both recursive and non recursive approaches.
Output for Binary Search:
Enter number of elements 6 Enter 6 integers 10 30 20 15 56 100 Enter value to find 33 Not found! 33 is not present in the list.
Refer the detailed explanation of Binary search with example and code for C++
Binary Search Algorithm With Example