使用二分查找的前提是数组有序
基本思路是:首先将给定Key值与表中中间位置元素的关键字比较,若相等,则查找成功,返回该元素的存储位置;若不等,则所需查找的元素只能在中间元素以外的前半部分或后半部分。然后在缩小的范围内继续进行同样的查找,如此重复,直到找到为止,或者确定表中没有所需要查找的元素,则查找不成功,返回查找失败的信息。
int Binary_Search(SeqList L,int n,ElemType k){
int low=0,high=n-1,mid;
while(low<=high)
{
mid=(low+high)/2;
if(L[mid].key==k)
return mid+1;
if(L[mid].key>k)
high=mid-1;
else
low=mid+1;
}
return 0;
}