Binary Search

Binary Search in C

This searching technique is applicable only for sorted array, but this searching technique is faster than linear search.

Steps for binary search

You need to first sort elements of array if it is not in sorted order, because binary search is only application on sorted element.

• First find the middle element of the array.
• Compare the middle element with the item. After this step there are three cases;
1. If middle element is a desired item then search is successful
2. If middle element is less than desired item then search only the first half of the array.
3. If middle element is grater than the desired item search in the second half of the array.
4. Repeat same steps until element is found.

Binary Search Program in C

```
#include<stdio.h>
#include<conio.h>
#include<dos.h>

void main()
{
int i, first, last, middle, n, search, array[100];
clrscr();
printf("Enter size of array to enter elements\n");
scanf("%d",&n);

printf("Enter %d elements\n", n);

for (i = 0; i < n; i++)
scanf("%d",&array[i]);

printf("Enter element 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("%d is not present in the list.\n", search);
getch();
}
```