Binary search:
Binary search is less time taking than linear search as it starts in the middle of a sorted array, and determines on which side the value is.
Steps for binary search algorithm:
- Firstly before applying direct searching on array, we have to sort the array. for sorting algorithm you can refer this link as: http://www.stepbystepjava.com/2018/04/26/bubble-sort-in-c
- let suppose we have an “array arr “arr[6] = { 1, 4, 3, 2, 8, 7 } and want to search element 7 in array;
- now sort this array by any sorting algorithm or follow above link for sorting. After sorting this it will be like {1,2,3,4,7,8}. apply binary search algorithm on it.


- Find mid index of array arr:
mid = (start index + end index) /2
- check for the element at mid index in array arr:
if(arr[mid] == element )
- check if element is greater than arr[mid] element then
start index = mid -1 otherwise end index = mid +1
- go to step 4 until beg is greater than end.
Here in this program, I am assuming that my array is already sorted so applying binary search on it directly.
Program :
#include <stdio.h>
#include <conio.h>
int main()
{
int arr[5], i,element,mid,beg,end,flag=0;
printf("Enter elements for array.");
for(int i=0; i<5; i++){
scanf("%d", &arr[i]);
}
printf("enter a element that you want to search");
scanf("%d", &element);
//code for binary search
beg = 0;
end = 4;
while(beg <=end && element != arr[mid]) {
mid = (beg + end)/2;
if(element == arr[mid]){
printf("element %d found at %d", arr[mid], mid);
flag = flag + 1;
}
else if(element < arr[mid]){
end = mid-1;
}
else{
beg = mid + 1;
}
}
if(flag == 0){
printf("item not found");
}
return 0;
}
Output:
