要求表已经排好序
#include <stdio.h>
int BinSearch(long num[],long x,int n)
{
int low=0,high=n-1,mid;
while (low<=high)
{
mid=(low+high)/2;
if(x>num[mid])
low=mid+1;//注意+1
else if(x<num[mid])
high=mid-1;//注意-1
else
return mid;
}
return -1;
}
int main()
{
/* Write C code in this online editor and run it. */
long num[5]={2,4,6,8,10};
long a=5;
long b=10;
printf("%d\n",BinSearch(num,a,5));
printf("%d\n",BinSearch(num,b,5));
return 0;
}