/**
* 参数n:数组的长度
* 参数key:要查找的值
**/
//在有序表a[0]--a[n-1]中二分查找数值为key的数据元素
//查找成功时返回该元素的下标序号;失败时返回-1
int BiSearch(int a[], int n, int key)
{
int low = 0, high = n - 1; //确定初始查找区间上下界
int mid;
while(low <= high)
{
mid = (low + high)/2; //确定查找区间中心下标
if(a[mid] == key) return mid; //查找成功
else if(a[mid].key < key) low = mid + 1;
else high = mid - 1;
}
return -1; //查找失败
}
二分查找(折半查找)
最新推荐文章于 2022-12-10 20:48:47 发布