📜  BST相对于哈希表的优势

📅  最后修改于: 2021-05-24 23:24:33             🧑  作者: Mango

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

自平衡二进制搜索树(BST)(如红黑树,AVL树,展开树等)中上述操作的时间复杂度为O(Logn)。

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

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