关注
平衡二叉树和哈希表的差别,为啥 二叉树用得更多。
1>可以看出,散列表的插入删除的时间复杂度是O(1),而二叉查找树的时间复杂度为O(lohn),很明显散列表的性能更加,但是我们如果要输出一个有序序列,则散列表要先将数据移动到数组进行排序,而二叉查找数据只需要中序遍历即可,
2>散列表在进行频繁的插入数据,需要自动扩容,二自动扩容的本身就比较消耗内存,性能,而且会存在hash冲突,二平二叉查找树性能本身就比较稳定,
3>散列表在设计的时候,要考虑的因素很多,比如设计hash函数,hash冲突解决,装载因子等因素,而二叉树只要考虑平衡问题就可以了.
中序遍历二叉查找树,可以输出有序的数据序列,时间复杂度是 O(n),非常高效
速地查找最大节点和最小节点
笼统地来说,尽管散列表的查找等操作的时间复杂度是常量级的,但因为哈希冲突的存在,这个常量不一定比 logn 小,所以实际的查找速度可能不一定比 O(logn) 快。加上哈希函数的耗时,也不一定就比平衡二叉查找树的效率高。
第四,散列表的构造比二叉查找树要复杂,需要考虑的东西很多。比如散列函数的设计、冲突解决办法、扩容、缩容等。平衡二叉查找树只需要考虑平衡性这一个问题,而且这个问题的解决方案比较成熟、固定。
最后,为了避免过多的散列冲突,散列表装载因子不能太大,特别是基于开放寻址法解决冲突的散列表,不然会浪费一定的存储空间。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
查看23道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如果秋招能重来,我会____ #
11072次浏览 104人参与
# 苦尽甘来时,再讲来时路 #
11043次浏览 185人参与
# 快手技术岗信息交流阵地 #
12563次浏览 74人参与
# 如果上班像打游戏,你最想解锁什么技能 #
2662次浏览 32人参与
# 我是面试官,请用一句话让我破防 #
2280次浏览 19人参与
# 为了实习逃课值吗? #
12259次浏览 99人参与
# “vivo”个offer #
19758次浏览 151人参与
# 校招生月薪1W算什么水平 #
3164次浏览 22人参与
# 机械求职避坑tips #
71473次浏览 485人参与
# 一份好的简历长什么样? #
7031次浏览 173人参与
# 选完offer后,你后悔学机械吗? #
43162次浏览 249人参与
# 秋招许愿,本周能____ #
14599次浏览 95人参与
# 选择和努力,哪个更重要? #
135260次浏览 1039人参与
# 班味很重的人是啥样的? #
4432次浏览 30人参与
# 应届生第一份工资要多少合适 #
3722次浏览 36人参与
# 投递无反馈,如何优化求职策略? #
2527次浏览 26人参与
# 材料专业可以靠半导体脱坑吗? #
26983次浏览 138人参与
# 机械制造秋招总结 #
82658次浏览 818人参与
# 大学最后一个寒假,我想…… #
60768次浏览 654人参与
# 职场新人体验 #
120883次浏览 827人参与
# 你觉得实习能学到东西吗 #
114715次浏览 1248人参与
# 新凯来求职进展汇总 #
58154次浏览 150人参与
