使用二分查找的前提是數組有序
基本思路是:首先将給定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;
}