二分查找
题目地址:https://pintia.cn/problem-sets/434/problems/965458856133562368
C语言代码
Position BinarySearch( List Tbl, ElementType K )
{
if(Tbl==NULL)
return NotFound;
int low=1,high=Tbl->Last;
int mid;
while(low<=high)//low一定小于等于high 如下标为1、2、3 要查询的是下标为1的数,第一次是比较下标为2的,不符合 high就变成了1,如果写low<high就会返回错误的结果
{
mid=(low+high)/2;
if(Tbl->Data[mid]==K)
return mid;
else if(Tbl->Data[mid]>K)
high=mid-1;
else
low=mid+1;
}
return NotFound;
}