# Binary Search

### Binary Search

The binary search technique works only on **sorted array**.It works by comparing the input element to the middle element of array.The comparison determines whether the element is less than.greater than or equal to middle element.Subsequent steps to be followed are written and explained by the following program.

#### Program

#include <stdio.h> int main() { int val[10] = {10,20,30,40,50,55,68,77,89,90};//Fig 3 int beg = 0; //first index of array int end = 9; //end(last index of array) = n-1 where n is the size of array and is 10 in this case. int mid = (beg+end)/2; // finds middle index of array. int i; int element; //printf("enter the element you want search for"); scanf("%d",&element); for(i=0;i<10;i++) //Fig 4 { if(val[mid] == element) { break; } else if(val[mid] < element) { beg = mid +1; mid = (beg +end)/2; } else{ end =mid -1; mid = (beg +end)/2; } } printf("Location of element is %d",mid); return 0; }

##### Illustration

**val[10]**of int type is initialized with values 10,20,30,40,50,55,68,77,89,90.**beg**variable of**int**type denotes the first index of array i.e.**0****end**variable of**int**type denotes the**last index**of array .It is equal to**(n-1)**,where n is the**size of array**.Here it is 10 so end=10-1=9**mid**index is calculated by adding beg plus end and the dividing the result by 2.**element**variable of**int**type is the data item which needs to be**searched**for in array and is entered by user using**scanf.**- Say we want to search for
**68**. - The following figure explains the working of
**for loop**to find 68.

Damn, I wish I could think of soetihmng smart like that!