红黑树与安德森树

问题描述 投票:0回答:1

为什么有人会更喜欢红黑树而不是安德森树,因为后者比前者简单得多,而且据说在实践中实现了几乎相同的性能?

performance algorithm data-structures red-black-tree
1个回答
8
投票

“据说”(维基百科)“红黑树的性能比 AA 树更一致,但 AA 树往往更平坦,这导致搜索时间稍快一些。”因此,R-B 树的第一个优点是它们的性能更容易预测,这使它们成为库(例如从中派生的原始 STL 和 C++ 标准库)的良好数据结构。

其次,如果您查看该声明的来源,您将看到两个表格(第 71 页和第 72 页),它们表明 AA 树需要更多比较才能进行删除,并且插入和删除需要更多旋转,以达到树木更扁平的目的。所以这里有一个权衡:当比较成本低但更新频繁时,红黑树可能会优于 AA 树;否则,当比较成本很高但查找比更新更频繁时,AA 树可能会获胜。

有趣的是,这种权衡与红黑树和AVL树之间的权衡非常相似。 AVL 树和 AA 树的比较会更有趣。

© www.soinside.com 2019 - 2024. All rights reserved.