/*
折半查找法将循环中的测试次数改为一次
折半查找法将循环中的测试次数改为一次
*/
#include <stdio.h>
int binsearch(int x,int v[],int n)
{
int low,high,mid;
low = 0;
high = n-1;
mid = (low+high)/2;
while (low<=high && v[mid]!=x)
{
if (x<v[mid])
{
high = mid-1;
}
else
{
low = mid+1;
}
mid = (low+high)/2;
}
if (x == v[mid])
{
return mid;
}
else
return -1;
}
void main()
{
int a;
int s[100] = {1,4,6,9,13,23,45,78};
a = binsearch(6,s,10);
printf("%d\n",a);
}