【发布时间】:2014-04-22 06:40:39
【问题描述】:
教科书上说拆分操作的次数以树的高度为界,即O(logn)。
我不太明白为什么它以树的高度为界?谁能解释一下?
【问题讨论】:
-
请更具体地说明您指的是什么。
标签: algorithm
教科书上说拆分操作的次数以树的高度为界,即O(logn)。
我不太明白为什么它以树的高度为界?谁能解释一下?
【问题讨论】:
标签: algorithm
当你从根开始,沿着一条路径向底部走尽可能远时,你可以遇到的最大节点数等于树的高度(这应该很容易看到并且它是,几乎按照定义,树的高度)。
现在,当您在二叉搜索树中搜索时,您从根开始,在每一步中,您查看当前节点,然后停止、向左或向右(向左或向右可以是被认为是拆分操作)。此过程涉及与上述相同数量的节点(从根向下走一些路径),其中涉及遇到许多节点,因此拆分操作,不超过树的高度。
还要注意,如果树是平衡的,树的高度仅为 O(log n)(更多信息请参阅this page)。
【讨论】:
很可能,在您所指的教科书中,有问题的数据结构位于具有n 节点的平衡二叉树中。由于它是平衡的,它的高度是log(n)。关于身高的详细定义和简要说明可以查看here。
【讨论】: