关注
平衡二叉树和哈希表的差别,为啥 二叉树用得更多。
1>可以看出,散列表的插入删除的时间复杂度是O(1),而二叉查找树的时间复杂度为O(lohn),很明显散列表的性能更加,但是我们如果要输出一个有序序列,则散列表要先将数据移动到数组进行排序,而二叉查找数据只需要中序遍历即可,
2>散列表在进行频繁的插入数据,需要自动扩容,二自动扩容的本身就比较消耗内存,性能,而且会存在hash冲突,二平二叉查找树性能本身就比较稳定,
3>散列表在设计的时候,要考虑的因素很多,比如设计hash函数,hash冲突解决,装载因子等因素,而二叉树只要考虑平衡问题就可以了.
中序遍历二叉查找树,可以输出有序的数据序列,时间复杂度是 O(n),非常高效
速地查找最大节点和最小节点
笼统地来说,尽管散列表的查找等操作的时间复杂度是常量级的,但因为哈希冲突的存在,这个常量不一定比 logn 小,所以实际的查找速度可能不一定比 O(logn) 快。加上哈希函数的耗时,也不一定就比平衡二叉查找树的效率高。
第四,散列表的构造比二叉查找树要复杂,需要考虑的东西很多。比如散列函数的设计、冲突解决办法、扩容、缩容等。平衡二叉查找树只需要考虑平衡性这一个问题,而且这个问题的解决方案比较成熟、固定。
最后,为了避免过多的散列冲突,散列表装载因子不能太大,特别是基于开放寻址法解决冲突的散列表,不然会浪费一定的存储空间。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
11-04 19:37
桂林电子科技大学 运维工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 找工作能把i人逼成什么样 #
9017次浏览 95人参与
# 大学最后一个寒假,我想…… #
70674次浏览 716人参与
# 百融云创求职进展汇总 #
23978次浏览 204人参与
# 0经验如何找实习? #
20938次浏览 368人参与
# 大家每天通勤多久? #
63367次浏览 408人参与
# 你今年做了几份实习? #
6693次浏览 102人参与
# 度小满求职进展汇总 #
17557次浏览 88人参与
# 大厂面试初体验 #
82572次浏览 376人参与
# 面试尴尬现场 #
202338次浏览 790人参与
# 字节出了豆包coding模型 #
5981次浏览 58人参与
# 你的秋招第一场笔试是哪家 #
274260次浏览 2068人参与
# 双非本科的出路是什么? #
184625次浏览 1481人参与
# 你还有多少年退休? #
29977次浏览 195人参与
# 你开始找寒假实习了吗? #
11916次浏览 178人参与
# 你找工作经历过哪些骗局? #
7464次浏览 120人参与
# AMA #
2887次浏览 19人参与
# 打工人的工作餐日常 #
76295次浏览 520人参与
# 实习越久越好,还是多多益善? #
14763次浏览 145人参与
# 工作两年想退休了 #
201935次浏览 1783人参与
# 25年找工作是什么难度? #
12139次浏览 124人参与
# 一起聊华为 #
166424次浏览 809人参与