首页 > 试题广场 >

在有序表(12,24,36,48,60,72,84)中二分查

[单选题]
在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数是多少?
  • 1
  • 2
  • 3
  • 4
推荐
答案:B 
第一次二分查找取序列中间值48,比较72>48
第二次查找取48右侧的子序列60,72,84的中值72,比较72==72,返回。查找完成
编辑于 2015-01-29 10:33:22 回复(0)
答案:B
采用二分搜索时取中间值即48进行比较,显然48小于72。所以搜索范围变为48的右侧。
然后同理取中间值72进行比较,得到结果程序结束。
所以比较了两次
发表于 2015-03-23 10:43:27 回复(0)
正确的二分查找应该是一次折半后,high=middle-1 或者 low=middle+1;
所以第一次查找时 high=6,low=0; middle= 0+6/2 = 3,即48;
第二次查找时 high=6, low =3+1; middle = 4+(6-4)/2 = 5,即72,查出所找关键字,故答案为B、2次
发表于 2015-08-27 15:21:51 回复(1)
B
1:mid = (0+6)/2=3      48
2: mid = (4+6)/2=5      72
所以是2次
编辑于 2015-03-19 15:16:02 回复(2)
7个数字,第一次在第三个数字36处索引,因为比36大,所以第二次在第6个数字72处索引,只查找了两次
发表于 2021-07-24 20:54:37 回复(0)
二分查找 找的是右侧 不包括它
发表于 2021-07-16 14:48:34 回复(0)
二分查找只和middle比较
发表于 2019-09-10 19:12:29 回复(0)
不知道各位亲自写过二分没有,我怎么感觉二分法你得先跟头尾比好了再二分找中间跟中间比呢😓
发表于 2019-03-11 21:08:38 回复(0)
我怎么觉得也有可能是3次呢!具体实现中考虑mid=(left+right)/2不为整数时向上取整还是向下取整。 向上取整的话第2次mid取(3+6)/2=5,和72比较,只需要两次。 向下取整则第2次mid取(3+6)/2=4,和60比较,第3次mid取(4+6)/2=5,和72比较。不知道我这样想对不对~
发表于 2018-03-08 00:19:20 回复(2)
二分法咯,两次就可以找到
发表于 2017-09-07 10:23:34 回复(0)
下次的时候mid要+1或-1;
发表于 2017-09-02 19:01:12 回复(0)
%递增或递减序列
low=0,high=6
mid=(low+high)/2;
if(a[mid]==72)
return mid;
if(a[mid]<72)
low=mid+1;
else
high=mid-1;

发表于 2016-05-22 21:49:27 回复(0)
第一次是48 第二次就是72啦
发表于 2015-01-19 16:24:19 回复(0)

Mid = (low + high) /2 48 72

发表于 2014-10-25 00:26:08 回复(0)
2次
发表于 2014-10-13 16:41:04 回复(0)