平衡二进制搜索树的高度

时间:2014-01-16 21:22:34

标签: tree binary-tree

为什么到达平衡二进制搜索树中元素的最长时间是log n,实际上,完美平衡的树有1,3,7,15个元素(比2的倍数小1) 。 这里给出的答案是Why is the height of a balanced binary search tree log(n)? (Proof),我们假设我们有2 ^ N个节点(2的倍数)

但是,如果我们记录那些奇数,我们就不会得到一个高数的圆数!

问题:

它真的是log(n + 1)但是我们丢弃了+1,因为它在巨大的n上可以忽略不计吗?

2 个答案:

答案 0 :(得分:0)

除非重要,否则将从O(..)表示法中删除常量。在您的示例中,添加+ 1不会影响运行时,因此我们会讨论O(log n)而不是O(log n + 1)

在任何情况下,在平衡二叉树中查找元素都是O(log n),因为在每一步中,您仍然需要搜索的树的大小减半。这个大O表示法表示算法的运行时随着n的增长而增加,它不是计算你将要做的操作数量的方式(因为可能涉及一些额外的操作等)。

请注意,您链接的问题涉及2 ^ N 叶节点,因此具有2 ^ 2 = 4叶节点的平衡二叉树将拥有7个总节点。 N在其他问题中的含义与此问题中的n不同。

答案 1 :(得分:0)

这是最低的上限,意味着达到某些n。请注意,具有根的普通树仅具有定义为0的高度,而不是您可能假设的1。例如。一个完美平衡的树,有3个元素,高度为1,树有4个元素,高度为2,即log(4)。