数据结构最简单的 二分查找 算法看不懂

structrecord{intkey;intothers;};intbisearch(structrecordr[],intk){intlow=0,mid,high=n... struct record{int key; int others;};
int bisearch(struct record r[ ], int k)
{
int low=0,mid,high=n-1;
while(low<=high)
{
__mid=(low+high)/2__;
if(r[mid].key==k)
return(mid+1); //这里为什么是返还mid+1
else
if(r[mid].key>k) //这个又什么意思
high=mid-1; //不懂
else low=mid+1; //不懂
}
return(0);
}
展开
 我来答
whacjq
推荐于2018-04-21 · TA获得超过576个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:179万
展开全部
struct record{int key; int others;};
int bisearch(struct record r[ ], int k)
{
int low=0,mid,high=n-1;
while(low<=high)
{
__mid=(low+high)/2__;
if(r[mid].key==k)
return(mid+1); //数组下标是0到n-1,所以返回值要+1
else
if(r[mid].key>k) //如果r[mid]的key值大于k
high=mid-1; //查找范围减半,变成low到mid-1
else low=mid+1; //如果r[mid]的key值小于等于k 查找范围减半,变成mid+1到high
}
return(0);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式