【发布时间】:2010-09-13 02:43:39
【问题描述】:
好的,这是 CS 人员在理论领域的另一篇文章。
在 90 年代,我在实施 BST 方面做得相当不错。唯一让我无法理解的是平衡二叉树 (AVL) 的算法的复杂性。
你们能帮我解决这个问题吗?
【问题讨论】:
-
你想让树完美平衡吗?最常见的算法保证一棵树在某种程度上是平衡的。例如,红黑树保证最深叶节点的深度不超过最浅叶节点深度的两倍
-
另外,您是在寻找一种算法,它采用一棵树并对其进行平衡,或者作为树操作的一部分进行平衡,如插入、删除等。
-
“完美”当然必须定义。然而,在二叉树的上下文中,唯一有意义的定义是具有对数高度的二叉树,不是吗?
-
您是否要求人们投票支持他们最喜欢的平衡树算法?答案是否取决于应用程序(例如,splay 树在重复最近搜索的情况下表现良好,AVL 完美平衡,红黑给出最漂亮的解释图等)
-
对不起,错字。我的意思是“红黑在插入时具有良好的最坏情况性能”
标签: algorithm computer-science binary-tree theory avl-tree