二分查找又称折半查找,使用条件是 有序的线性表并顺序存储
int Binary_search(int a[],int n,int key)
{
int low,high,mid;
low=0;
high=n; //注意是n
while(low<=high) //可以试试 low<high
{
mid=(low+high)/2;
if(key<a[mid])
high=mid-1;
else if(key>a[mid])
low=mid+1;
else
return mid;
}
return -1;
}
时间复杂度:O(logn)