## Binary search algorithm implementation using C program

###
__Program:__

__Program:__

/* recursive binary search*/

#include<stdio.h>

int bsearch(int [ ],int, int, int); //function declaration

int main( )

{

int a[20], i, low_index, high_index;

int position, total_keys, key_to_find

printf("\nEnter the total number of values:");

scanf("%d", &total_keys);

for(i = 0; i < total_keys; i++)

{

printf("\nEnter
the key elements %d : ", i);

scanf("%d", &a[i]);

}

printf("\nEnter the key to search : ");

scanf("%d", &key_to_find);

low_index = 0;

high_index = n-1;

//the following line calls the function
bsearch with parameters

position = bsearch(a, key_to_find, low_index, high_index);

if(position!=-1)

printf("Search successful, element found at position %d", position);

else

printf("Search unsuccessful, element not found");

getch();

}

int bsearch(int a[ ], int k, int lb, int ub)

{

int mid;

while(ub >= lb) //repeat this loop while upper bound
>= lower bound

{

mid=(lb+ub)/2; //finds new middle index in each iteration

if(k <
a[mid]) //if the key_to_find is smaller than middle
element of array,

ub =
mid-1; //set the new upper bound as middle-1

else if(k
> a[mid]) //if key_to_find is larger than middle

lb =
mid+1; //set the new lower bound as middle+1

else if(k
== a[mid]) //if key_to_find is equal to middle
element

return(mid); //return the middle element as
result

return (bsearch(a,k,lb,ub));
//if none of the above holds, call bsearch (recursive)

}

return -1; //if the key_to_find is not in the list, return
-1 to tell ‘NOT FOUND’

}

**************

binary search program in C

binary search algorithm using recursive functions in C

binary search divide and conquer algorithm

binary search simple program in C