二叉查找树对比散列表的优势

  1. 散列表无序存储,输出有序数据需要先排序,二叉查找树中序遍历可以输出有序的数据,时间复杂度O(n)
  2. 散列表扩容耗时很多,遇到散列冲突时,性能不稳定。平衡二叉树时间复杂度稳定在O(logn)
  3. 散列表查找速度与散列冲突解决办法、哈希函数有关,查找速度不一定比O(logn)快
  4. 散列表构造比较复杂,需要考虑散列函数的设计,冲突解决,扩容等,平衡二叉树只要考虑平衡性。
  5. 散列表装载因子不能太大,存在空间的浪费。

参考链接

散列表那么优秀,为什么还要二叉查找树?