答案:A
答案解析:
折半查找判定树实际上是一棵二叉排序树,它的中序序列是一个有序序列。可以在树结点上依次填上相应的元素,符合折半查找规则的树即是所求。
B选项4、5相加除二向上取整,7、8相加除二向下取整,矛盾。C选项,3、4相加除二向上取整,6、7相加除二向下取整,矛盾。D选项,1、10相加除二向下取整,6、7相加除二向上取整,矛盾。A符合折半查找规则,正确。
分析:
折半查找整个算法中,关于mid的取值向上/向下需要统一。
如果待查找序列中节点总数是偶数,计算mid值的时候一定涉及向上/向下取值问题。
- 向下取整
- 如果待查找序列中节点总数是偶数,且向下取整,那么mid作为排序树的根节点,它的左子树中节点总数一定比右子树中节点总数小1。
例如,在结点1,2,3,4中查找, low=1,high=4 mid=2(下取整)。因此,根节点为2, 左子树结点有1,右子树结点共有3,4 - 如果待查找序列中节点总数是
- 如果待查找序列中节点总数是偶数,且向下取整,那么mid作为排序树的根节点,它的左子树中节点总数一定比右子树中节点总数小1。