24

我正在阅读 Steve Yegge 关于单身人士的文章。在其中他提到他的老师告诉他 AVL 树是邪恶的。仅仅是红树和黑树是更好的解决方案吗?

4

6 回答 6

19

从什么角度看邪恶?

一如既往:没有坏工具,只有坏工匠。

在我的记忆中,AVL 树的插入/删除速度较慢,但​​检索速度比红/黑树快。主要是因为平衡算法。

于 2009-09-08T15:36:41.567 回答
8

不,AVL 树在任何方面都肯定不是邪恶的。它们是完全有效的自平衡树结构。它们肯定具有与红黑树不同的性能特征,通常这些差异导致人们选择红黑树而不是 AVL 树。但这并不会使他们变得邪恶。

于 2009-09-08T15:35:31.897 回答
4

我确信 AVL 树是邪恶的,就像 GOTO 是邪恶的或 BUBBLE SORT 是邪恶的一样。

算法并不邪恶,但算法也不会跳来跳去告诉你它们什么时候合适。

于 2009-09-08T15:39:24.570 回答
2

这里有很多关于 Red-Black 和 AVL-Trees 之间差异的信息:

http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=22948

以及比较不同结构的论文:

http://www.stanford.edu/~blp/papers/libavl.pdf

简而言之 - AVL 搜索速度更快,Red-Black 插入速度更快。

于 2009-10-19T13:10:26.293 回答
1

不,它们并不邪恶,只是编程有点棘手。

AVL 树 http://www.eternallyconfuzzled.com/tuts/datastructures/jsw_tut_avl.aspx

红黑树也从那里链接。

于 2009-10-19T12:46:57.727 回答
1

伸展树更酷。:)

于 2009-09-08T15:53:59.113 回答