首页 > 试题广场 >

下列选项中,不能构成折半查找中关键字比较序列的是( ) 例如

[单选题]
下列选项中,不能构成折半查找中关键字比较序列的是( )
例如:比较序列为23,1,4,3,6,第一个查找23,第二个查找1,说明目标值小于23;第三个查找到4,说明目标值大于1;然后查找到3,说明目标值小于4;最后查找到6,与‘小于4’不符,逻辑错误;所以这是一个不能构成折半查找比较序列的序列
  • 3,1,5,7,9
  • 6,14,12,10,8
  • 11,13,19,15,17
  • 20,18,12,16,14
选项A:3,1,5,7,9 1. 初始状态:以3为根节点,动态区间为(-\infty, +\infty)。 2. 第二步1:1 < 3,走向3的左子树,更新区间为(-\infty, 3),后续所有值必须满足<3。 3. 第三步5:5 > 3,超出当前区间(-\infty, 3),违反折半查找的区间约束,序列非法。 (后续7、9无需继续校验,已确定序列不合法) 选项B:6,14,12,10,8 1. 初始状态:以6为根节点,区间(-\infty, +\infty)。 2. 第二步14:14 > 6,走向6的右子树,更新区间为(6, +\infty)。 3. 第三步12:6 < 12 < 14,走向14的左子树,更新区间为(6, 14)。 4. 第四步10:6 < 10 < 12,走向12的左子树,更新区间为(6, 12)。 5. 第五步8:6 < 8 < 10,走向10的左子树,更新区间为(6, 10),所有步骤均满足约束,序列合法。 选项C:11,13,19,15,17 1. 初始状态:以11为根节点,区间(-\infty, +\infty)。 2. 第二步13:13 > 11,走向11的右子树,更新区间为(11, +\infty)。 3. 第三步19:19 > 13,走向13的右子树,更新区间为(13, +\infty)。 4. 第四步15:13 < 15 < 19,走向19的左子树,更新区间为(13, 19)。 5. 第五步17:15 < 17 < 19,走向15的右子树,更新区间为(15, 19),所有步骤均满足约束,序列合法。 选项D:20,18,12,16,14 1. 初始状态:以20为根节点,区间(-\infty, +\infty)。 2. 第二步18:18 < 20,走向20的左子树,更新区间为(-\infty, 20)。 3. 第三步12:12 < 18,走向18的左子树,更新区间为(-\infty, 18)。 4. 第四步16:12 < 16 < 18,走向12的右子树,更新区间为(12, 18)。 5. 第五步14:12 < 14 < 16,走向16的左子树,更新区间为(12, 16),所有步骤均满足约束,序列合法。
发表于 2025-12-17 06:52:03 回复(1)