为什么到达平衡二进制搜索树中元素的最长时间是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上可以忽略不计吗?
答案 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)。