#include<stdio.h>
int BinSearch(int arr[],int len,int key)
{
int low=0; //起始元素
int high=len-1; //终止元素
int mid;
while(low<=high)
{
mid=(low+high)/2;
if(arr[mid]==key)
{
return mid;
}
else if(arr[mid]<key) //右边查找
{
low=mid+1;
}
else
{
high=mid-1;
}
}
return -1;
}
int main() //测试用例
{
int arr[]={1,2,3,4,5,6,7,8,9,10,11,12};
for(int i=0;i<15;i++)//查找值为0~14
{
printf("%d\n",BinSearch(arr,sizeof(arr)/sizeof(arr[0]),i));
}
return 0;
}
运行结果如下:(-1表示未查找到该值)