performance - AVL 树什么时候比哈希表更好?

标签 performance data-structures hashmap hashtable avl-tree

更具体地说,如果使用 AVL 树而不是哈希表,是否可以更有效地执行任何操作?

最佳答案

我通常更喜欢 AVL 树而不是哈希表。我知道哈希表的预期时间 O(1) 复杂度优于 AVL 树的保证时间 O(log n) 复杂度,但在实践中常数因素使这两种数据结构通常具有竞争力,并且没有琐碎的担忧一些引发不良行为的意外数据。此外,我经常发现在程序维护期间的某个时候,在最初选择哈希表似乎正确时无法预见的情况下,我需要按排序顺序排列数据,因此我最终重写了程序以使用AVL 树而不是哈希表;这样做的次数足够多,您就会了解到您还不如从 AVL 树开始。

如果您的键是字符串,三元搜索尝试为 AVL 树或哈希表提供合理的替代方案。

关于performance - AVL 树什么时候比哈希表更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839311/

相关文章:

java - Volatile HashMap 与 ConcurrentHashMap

Java:散列一个巨大列表中的每个可能的对

performance - 如何分析 Oracle 存储过程的端到端性能

java - 如何衡量效率(特别是 : assembly code) for java programs?

ruby-on-rails - 如何阻止我的 rails 应用程序被机器人攻击?

algorithm - 给定一个点列表,如何确定哪些点彼此之间的距离在一定范围内

c++ - 内存和处理高效的多维数据结构C++

javascript - 如何加快 CKEditor 的速度

R:使用一个变量的值作为新变量来更改数据帧结构

java - 如何从 HashMap 中删除元素而不出现 ConcurrentModificationException