找一个整数中的某个数字,找到返回下标,找不到返回-1;
#include<stdio.h>
#include<stdlib.h>
int bin_search(int arr[],int key,int sz)
{
int left=0,right=sz-1;
while(left<=right)
{
int mid=(right+left)>>1;
if(arr[mid]<key)
left=mid+1;
else if(arr[mid]>key)
right=mid-1;
else
{
printf("%d\n",mid);
break;
}
}
return 0;
}
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9};
int key=9;
int ret=bin_search(arr,key,sizeof(arr)/sizeof(arr[0]-1));
if(ret==-1)
{
printf("not exist");
}
else
{
printf("%d\n",ret);
}
system("pause");
return 0;
}