微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我们应该更喜欢使用二叉搜索树而不是 AVL 树有什么优势或特定情况吗?

如何解决我们应该更喜欢使用二叉搜索树而不是 AVL 树有什么优势或特定情况吗?

我们应该更喜欢使用二叉搜索树而不是 AVL 树有什么优势或特定情况。

解决方法

如果你不关心 lookup/insert/remove 操作的时间复杂度,那么 BST 就足够了。它更容易实现并且需要更少的空间。然而,在最坏的情况下,它的性能是 O(n) - 想象一下只向 BST 添加增加或减少的元素。

另一方面,如果您确实关心性能,那么您可以使用 AVL 树,因为它是一个自平衡 BST - 它的高度保证为 ~ log(n),其中 n 是树中的节点。这就是查找 lookup/insert/remove 操作是对数的原因。但是,AVL 树需要更多空间(每个节点都需要保留其 height),以及在违反此类属性时重新平衡树的额外逻辑。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。