/**
* 参数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; //查找失败
}
本文介绍了一种在有序数组中进行二分查找的算法实现。该算法通过不断缩小搜索范围来提高查找效率,并详细展示了如何使用两个指针来确定当前搜索区间的起始和结束位置。当查找成功时,返回目标值的索引;若查找失败,则返回-1。

被折叠的 条评论
为什么被折叠?



