您的位置:首页 > 编程语言 > C语言/C++

Algorithm学习笔记 --- C语言实现二分查找

2017-08-25 11:41 537 查看
int BinSearch(SeqList *R, int n, KeyType k)
{
int low = 0;
int high = n - 1;
int mid;
while(low < high)
{
if(R[low].key == k)
return low;
if(R[high].key == k)
return high;
mid = low + ((high - low) / 2);
//注:此处如果使用low + high的结果大雨表达式结果类型所能表达的最大值时,
//会产生溢出,结果不正确。
if(R[mid].key == k)
return mid;
if(R[mid].key < k)
low = mid + 1;
else
high = mid - 1;
}
if (low > high)
return -1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐