首页 > 试题广场 >

设有序表的关键字序列为{1,4,6,10,18,35,42,

[单选题]

设有序表的关键字序列为{1461018354253677178849299},当用二分查找法查找键值为35的结点时,经()次比较后查找成功。

  • 2
  • 3
  • 4
  • 6
推荐
答案选C
[解析]
第一步:标下标
left                                                                                        right
0,1,2,  3,  4,  5,  6,  7,  8,  9,10,11,12,13
1461018354253677178849299

第二步:利用公式 选取中间点下标 :mid = left + ((right - left) >> 1)不用 mid = (left + right) / 2 或者 mid = (left + right) >> 1的原因,left + right 可能超出类型的范围,为负值

第一次比较:mid = (0+13) / 2 = 6, arr[6] = 42 > 35, 表示要找的目标值35在mid左边,为[0, 5]
第二次比较:mid = (0+5) / 2 = 2, arr[2] = 6 < 35,表示要找的目标值在mid右边,为[3, 5]
第三次比较:mid = (3+5) / 2 = 4, arr[4] = 18 < 35, 表示要找的目标值在mid右边,为[5,5]
第四次比较:mid = (5+5) / 2 = 5, arr[5] = 35 = 35, 表示找到了目标值。
编辑于 2019-10-24 14:21:23 回复(0)
C
根据题意对所给数列(14个有序元素)进行二分法查找。
  1. 从序列中间第七位42>35,则目标数值35位于左边
  2. 从剩余左边数列中间6<35,则目标数值35位于右边
  3. 从剩余序列中间18<35,则目标数值35位于右边
  4. 剩余35,找到目标值。
发表于 2019-10-24 02:38:09 回复(0)