#define max 100
int a[max];
int binary_search(int key,int low,int high)
{
int mid;
if(low<=high)
{
mid=(low+high)/2;
if(key==a[mid])
{printf("Key Found at %d",mid); return 0;}
else
{
if(key<a[mid])
binary_search(key,low,high=mid-1);
else
binary_search(key,low=mid+1,high);
}
}
else
printf("Key Not Found");
}
int main()
{
int i,key,n,low,high;
printf("\nEnter the size of the array");
scanf("%d",&n);
printf("\nEnter Array Elements in Ascending Order:");
for(i=0;i<n;i++)
{
printf("\nArray element:a[%d]=",i);
scanf("%d",&a[i]);
if(i>0)
{
if(a[i]<a[i-1])
{
printf("Invalid Input! Input Must be in Increasing Order..\nTry
again");
i--;
}
}
}
printf("Enter Key to search:");
scanf("%d",&key);
low=0;high=n-1;
binary_search(key,low,high);
return 0;
}