下列二叉树中,可能成为折半查找判定树(不含外部结点)的是()向上/下取整

在这里插入图片描述

答案: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
    • 如果待查找序列中节点总数是2,且向下取整,mid一定是其中较的那一个,剩下的的那一个节点变成mid的子树
  • 向上取整
    • 同理,如果待查找序列中节点总数是偶数,且向上取整,那么mid作为排序树的根节点,它的左子树中节点总数一定比右子树中节点总数1。
    • 如果待查找序列中节点总数是2,且向上取整,mid一定是其中较的那一个,剩下的的那一个节点变成mid的子树

将上述规律带入图中进行验证:
A:正确;
B:对于节点4和5,5作为mid,且4为其左子树,说明是向上取整;对于节点7和8,7作为mid,且8为其右子树,说明是向下取整。矛盾,说明B错;
C、D同理。

总结:
注意:折半查找整个算法中,关于mid的取值向上/向下需要统一。
向上取整: mid 和子树比较,mid大于子树就是向上取整;
向下取整: mid 和子树比较, mid小于子树就是向下取整;

原链接:https://blog.csdn.net/qq_41754065/article/details/106590844

看到最后的帮忙

点个👍🙏 谢谢,这个对我真的很重要!

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值