#include<stdio.h>
int binary_search(int n,int a[],int key);
int main(){
int i, pos,n,key,a[100];
printf("Enter number of elements . \n"); printf("Enter %d integers : \n",n
); for(i=0;i<n;i++){
}
printf("Enter value to find : "); pos = binary_search(n,a,key);
if(pos>=0){
printf("\n%d is location of data in array. ",pos
); }
else{
printf("%d is not present in list",key
); }
return 0;
}
int binary_search(int n,int a[], int key){
int bottom = 0, mid;
int top = n-1;
while(bottom<=top){
mid=(top+bottom)/2;
if(key == a[mid]){
return mid;
}
if(key<a[mid]){
top = mid - 1;
}
else{
bottom = mid + 1;
}
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IGJpbmFyeV9zZWFyY2goaW50IG4saW50IGFbXSxpbnQga2V5KTsKaW50IG1haW4oKXsKCWludCBpLCBwb3MsbixrZXksYVsxMDBdOwoJcHJpbnRmKCJFbnRlciBudW1iZXIgb2YgZWxlbWVudHMgLiBcbiIpOwoJc2NhbmYoIiVkIiwmbik7CglwcmludGYoIkVudGVyICVkIGludGVnZXJzIDogXG4iLG4pOwoJZm9yKGk9MDtpPG47aSsrKXsKCQlzY2FuZigiJWQiLCZhW2ldKTsKCX0KCXByaW50ZigiRW50ZXIgdmFsdWUgdG8gZmluZCA6ICIpOwoJc2NhbmYoIiVkIiwma2V5KTsKCXBvcyA9IGJpbmFyeV9zZWFyY2gobixhLGtleSk7CglpZihwb3M+PTApewoJCXByaW50ZigiXG4lZCBpcyBsb2NhdGlvbiBvZiBkYXRhIGluIGFycmF5LiAiLHBvcyk7Cgl9CgllbHNlewoJCXByaW50ZigiJWQgaXMgbm90IHByZXNlbnQgaW4gbGlzdCIsa2V5KTsKCX0KCXJldHVybiAwOwp9CmludCBiaW5hcnlfc2VhcmNoKGludCBuLGludCBhW10sIGludCBrZXkpewoJaW50IGJvdHRvbSA9IDAsIG1pZDsKCWludCB0b3AgPSBuLTE7Cgl3aGlsZShib3R0b208PXRvcCl7CgkJbWlkPSh0b3ArYm90dG9tKS8yOwoJCWlmKGtleSA9PSBhW21pZF0pewoJCQlyZXR1cm4gbWlkOwoJCX0KCQlpZihrZXk8YVttaWRdKXsKCQkJdG9wID0gbWlkIC0gMTsKCQl9CgkJZWxzZXsKCQkJYm90dG9tID0gbWlkICsgMTsKCQl9Cgl9CglyZXR1cm4gMDsKfQ==