核心思想:
条件:
对一个序列进行二分查找,那么我们首先一定需要满足这个序列带有单调性。
int search(int a[],int n,int x){//设单调数组a[],长度为n
int l=0,r=n-1,mid;//最后一个元素下标为n-1
mid=(l+r)/2;
while(l<=r){
if(a[mid]>x)
r=mid-1;
else if(a[mid]<x)
l=mid+1;
else{
return mid;//找到x元素位置
break;
}
}
return -1;//查找失败
}