int Binary_Search(SeqList L, ElemType key)
{
//在有序表L中查找关键字为key的元素,若存在则返回其位置,不存在则返回-1
int low=0, high=L.TableLen-1, mid;
while(low<=high)
{
mid=(low+high)/2;//取中间位置
if(L.elem[mid]==key)
return mid;//查找成功则返回其所在位置
else if(L.elem[mid]>key)
high=mid-1;//从前半部分继续查找
else
low=mid+1;//从后半部分继续查找
}
return -1;
}
时间复杂度:O(log2n)