关于二分查找次数的问题

作者:chen_CHEN976
链接:https://www.nowcoder.com/discuss/45945
来源:牛客网
发现自己也算了这么多次比较次数了
问一道题
赛马网的

有一个有序表为{1,5,8,11,19,22,31,35,40,45,48,49,50},当二分查找值为48的结点时, 查找成功需要比较的次数(      )

答案是4
看到两个说法
1

一共13个数,将其分别标号为1~13:

low和high分别指向待查元素所在范围的下界和上界,mid指向区间的中间位置,

第一次比较:low=1,high=13,mid=7,31<48,未找到

第二次比较:low=mid+1=8,high=13,mid=10,45<48,未找到

第三次比较:low=mid+1=11,high=13,mid=12,49>48,未找到

第四次比较:low=11,high=mid-1=11,mid=11,48=48.找到,结束。

2下标从0 开始 算出来3次
我觉得市第二种呀

有大佬出来解答一下吗
全部评论
0没问题啊 第一次从下标0到12,中间是6,对应的数为31; 第二轮从下标7到12.中间是9; 第三轮是下标10到12.中间是11; 第四轮下标10到10,中间是10,找到了
点赞 回复 分享
发布于 2017-09-21 22:52

相关推荐

评论
点赞
7
分享

创作者周榜

更多
牛客网
牛客企业服务