【发布时间】:2013-02-01 03:47:49
【问题描述】:
所以,我一直在研究平衡二叉搜索树。
我用谷歌搜索过,这是我发现的:
每个节点的两个子树的深度相差 1 或更小的二叉树(来自维基百科)
我们不能将平衡二叉树定义为高度不超过 ceil(log(n+1) / log 2) 的树吗?
从这个答案Is Binary Search tree balanced? 看来,提问者似乎已经问了很多同样的事情,但是接受的答案通过给出斐波那契树的例子来拒绝这个想法。斐波那契树不是平衡树吗?我认为回答者可能对 AVL 树中平衡树的定义感到困惑,据我了解,其中允许某些不平衡树
【问题讨论】:
-
BST 的最佳情况是 log(n),最坏情况是 n。平衡 BST 的想法就像您所说的每个节点的两个子树的深度相差 1 或更小。然而 AVL 树或红黑树是自平衡 BST 的实现,根据算法,它们不会实现 log(n) 的完美平衡树,而是按照 nlog(n) 的顺序,这要好得多比 n.
-
你确定它的 nlogn(n) 吗?它应该是 clog(n) 对吗?因为 n 实际上比 nlog(n) 好
-
啊,是的,它应该是 clog(n)
标签: data-structures tree binary-tree