平衡二叉搜索树的比较

时间:2011-08-27 15:22:01

标签: data-structures tree red-black-tree avl-tree

我已经阅读了一些Q&关于自平衡二叉树,但我并不熟悉所有这些。

我知道的第一个是AVL,第二个是红黑树。

有些东西我不太明白:根据一些书籍和文章,AVL可以比红黑树快一点搜索,嗯,这是可以理解的。

  1. 那么什么是红黑树在AVL上的优势?

  2. 在AVL中,可能在每次插入后,我们必须检查平衡,但在红黑树中,我们不必频繁地做这样的事情,对吧?

  3. PS: 我搜索SO类似的东西,但我没有得到令人满意的答案。 希望有些朋友可以给我一个自平衡树的详细比较。

1 个答案:

答案 0 :(得分:2)

AVL树具有以下属性:从每个节点,左侧和右侧子树的高度差最多为2.

另一方面,在红黑树中,任何节点的左子树或右子树的高度最多两倍另一棵树的高度。也就是说,它们最多相差2倍。

这直观地表明,AVL树中的查找确实更快。

然而,当插入或删除节点时,我们必须更频繁地重新平衡AVL树,以保持更严格的高度不变(另一方面,在红黑树中重新平衡在算法上要复杂得多)。这意味着在实践中,红黑树可能比AVL树表现得更好,特别是在经常更改时。