我在几个地方读到过avl树搜索更快,但无法理解。据我所知: 红黑树的最大高度 = 2 * log(N + 1) AVL树的高度 = 1.44 * log(N + 1)
这是因为AVL树更矮吗?
我在几个地方读到过avl树搜索更快,但无法理解。据我所知: 红黑树的最大高度 = 2 * log(N + 1) AVL树的高度 = 1.44 * log(N + 1)
这是因为AVL树更矮吗?
是的。
查找一个元素所需的步骤数量取决于该元素与根节点之间的距离。
由于AVL树更加紧密(即其最大高度较低),这意味着比红黑树更多的元素更接近根节点。
这种额外的紧密性也意味着在插入元素时,AVL树需要更多的工作。任何应用程序的最佳选择取决于它是否面向插入或搜索...
如果输入键值近乎升序/降序,则AVL树比红黑树更好,因为我们只需要进行单旋转(左-左或右-右情况)就可以添加此元素。此外,由于树会保持紧密平衡,因此搜索速度也会更快。
但是对于随机选择的输入键,红黑树更好,因为它们相对于AVL树需要更少的旋转来插入元素。
总的来说,这取决于输入序列,它将决定我们的树有多倾斜以及所执行的操作。对于插入密集型使用红黑树,对于搜索密集型使用AVL树。
请查看https://en.wikipedia.org/wiki/AVL_tree#Comparison_to_other_structures以获取详细信息。