📜  BST 相对于哈希表的优势

📅  最后修改于: 2021-10-27 08:32:03             🧑  作者: Mango

哈希表支持在 Θ(1) 时间内进行以下操作。
1) 搜索
2) 插入
3) 删除

自平衡二叉搜索树 (BST)(如红黑树、AVL 树、Splay 树等)中上述操作的时间复杂度为 O(Logn)。

所以哈希表似乎在所有常见操作中都击败了 BST。什么时候我们应该更喜欢 BST 而不是哈希表,有什么优势。以下是支持 BST 的一些要点。

  1. 只需执行 BST 的中序遍历,我们就可以按排序顺序获取所有键。这不是哈希表中的自然操作,需要额外的努力。
  2. 使用 BST 可以轻松进行顺序统计、查找最近的较低和较大元素、进行范围查询。像排序一样,这些操作不是哈希表的自然操作。
  3. 与散列相比,BST 易于实现,我们可以轻松实现自己定制的 BST。为了实现Hashing,我们通常依赖于编程语言提供的库。
  4. 使用自平衡 BST,所有操作都保证在 O(Logn) 时间内工作。但是对于散列,Θ(1) 是平均时间,某些特定操作可能会很昂贵,尤其是在调整表大小时。

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程。