Last Updated:

# Binary Search in C

## Algorithm

Input: Input the size, elements of an array and element to search.
Output: Displays the index of the element if present

1. Start
2. Read the size of the array and store it in a variable say n
3. Read the elements of the array
4. Read the element to be searched
5. i=0, j=0
6. while  i<n
6.1 while j< ( n-i-1)
6.1.1 if a[ j ] > a [ j+1 ]
6.1.1.1 temp = a [ j ]
6.1.1.2 a[ j ] = a [ j+1 ]
6.1.1.3 a [ j+1 ] = temp
7. left = 0, right= n
8. while left <= right
8.1 mid = (left+right)/2
8.2 if search = = a [ mid ]
8.2.1 Print "The element can be found at" + mid
8.2.2 exit
8.3 else if search < a [ mid ]
8.3.1 right = mid-1
8.4 else
8.4.1 left =mid+1
9. return Print "Element not present in the inputed array"
10. stop

## C Program

# include <stdio.h>
int main ( ) {
int n,temp;
printf("Enter the size of the array: ");
scanf("%d", &n);
int a [n];
printf("Enter the elements of the array one by one \n");
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}

//Sorting logic
for (int i = 0; i < n; i++) {
for (int j = 0; j < (n-i-1); j++) {
if ( a[j] > a [j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}}
}

// Binary Search Logic
int left = 0,right = n,search,found=0;
printf("Enter a number to search: ");
scanf("%d",&search);
while(left<=right) {
int mid=(left+right)/2;
if (search == a[mid]){
printf("The element can be found at index %d",mid);
exit(0);
} else if (search < a[mid]) {
right=mid-1;
} else {
left=mid+1;
}
}
return printf("Element not present in the inputed array");
}

## Output

Enter the size of array:5
Enter the elements in the array:
5
9
7
2
1
Enter a number to search:1
The element can be found at index 0