基本思想:
仅用于有序顺序表。
满足下限<=上限前提下,根据上限和下限,取中间值,用所查值k和中间值比较;k等于则返回中间值,k小于则上限取中间-1,否则下限取中间值+1;循环查找。
若条件不满足依然未查到,则返回-1,表查不到。
int Binary_Search(Sqlist L,int k){
int low=0,high=L.length-1,mid;
while(low<=high){
mid=(low+high)/2;
if(k==L.data[mid])
return mid; //k值与mid对应元素值相同
else if(k<L.data[mid])
high=mid-1;
else
low=mid+1;
}
return -1; //未查到
}