首页 > 试题广场 >

已知有序序列b c d e f g q r s t,则在二分

[单选题]
已知有序序列b c d e f g q r s t,则在二分查找关键字b的过程中,先后进行比较的关键字依次是多少?()
  • f d b
  • f c b
  • g c b
  • g d b
b c d e f g q r s t 二分查找,折半法
① low = 0,high = 9,mid = (low+ high)/2=4,  ∴  'b'比较a[4]='f',<,找左边 ( b~e )
② low = 0,high = mid-1 = 3, mid = 3/2=1, ∴ 'b'比较a[1]='c' , <,找左边(b~b)
③ low = 0,high = mid -1 = 0,mid = 0,∴ 'b' 比较a[0] = 'b',找到(若未找到,low=high,也停止查找)
所以比较的顺序就是f c b
编辑于 2016-02-29 13:50:40 回复(1)
PYQ头像 PYQ
注意二分查找每次的下标并不是直接取原来,而是会减一;并且当mid为奇数时,mid/2是向下取整。
发表于 2019-10-09 18:22:27 回复(1)
第一次mid=(0+9)/2=4,偏大后向左查找,此时high=mid-1=3,
第二次mid(0+3)/2=1,仍然偏大,继续向左查找,此时high=mid-1=0
第三次mid=(0+0)/2=0,查找到key=f,成功;
所以答案依次为对应的索引:f,c,b
发表于 2018-07-02 13:49:21 回复(0)
将字符对应成数字,1,2,...,10,转成二叉搜索树,如图
查找1(b),需要比较3次,分别对应5,2,1,即f,c,b
编辑于 2022-12-01 11:35:01 回复(0)

.二分查找的关键在于找到mid、那么:

9/2,取4,则查找f,由于b<f,则范围缩小至:b,c,d,e,

3/2,取1,则查找c、

编辑于 2021-07-29 23:43:38 回复(0)
为什么要减一呢 不减一可以吗
发表于 2023-02-10 09:14:24 回复(0)
进行二分查找,取中间值
发表于 2022-08-25 19:31:29 回复(0)
二分查找,可看做二叉搜索树?
发表于 2021-11-02 08:39:24 回复(2)
找左边,还是找右边,要根据b值的大小
发表于 2019-03-13 16:20:18 回复(0)