关注
平衡二叉树和哈希表的差别,为啥 二叉树用得更多。
1>可以看出,散列表的插入删除的时间复杂度是O(1),而二叉查找树的时间复杂度为O(lohn),很明显散列表的性能更加,但是我们如果要输出一个有序序列,则散列表要先将数据移动到数组进行排序,而二叉查找数据只需要中序遍历即可,
2>散列表在进行频繁的插入数据,需要自动扩容,二自动扩容的本身就比较消耗内存,性能,而且会存在hash冲突,二平二叉查找树性能本身就比较稳定,
3>散列表在设计的时候,要考虑的因素很多,比如设计hash函数,hash冲突解决,装载因子等因素,而二叉树只要考虑平衡问题就可以了.
中序遍历二叉查找树,可以输出有序的数据序列,时间复杂度是 O(n),非常高效
速地查找最大节点和最小节点
笼统地来说,尽管散列表的查找等操作的时间复杂度是常量级的,但因为哈希冲突的存在,这个常量不一定比 logn 小,所以实际的查找速度可能不一定比 O(logn) 快。加上哈希函数的耗时,也不一定就比平衡二叉查找树的效率高。
第四,散列表的构造比二叉查找树要复杂,需要考虑的东西很多。比如散列函数的设计、冲突解决办法、扩容、缩容等。平衡二叉查找树只需要考虑平衡性这一个问题,而且这个问题的解决方案比较成熟、固定。
最后,为了避免过多的散列冲突,散列表装载因子不能太大,特别是基于开放寻址法解决冲突的散列表,不然会浪费一定的存储空间。
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 机械人与华为的爱恨情仇 #
103707次浏览 922人参与
# 24届硬件人与华为的爱恨情仇 #
118353次浏览 962人参与
# 你最满意的offer薪资是哪家公司? #
16175次浏览 119人参与
# 硬件兄弟们 甩出你的华为奖状 #
93535次浏览 670人参与
# 运营面经 #
99186次浏览 1202人参与
# 来聊聊机械薪资天花板是哪家 #
110520次浏览 720人参与
# 机械人怎么评价今年的华为 #
188786次浏览 1502人参与
# 找工作,行业重要还是岗位重要? #
13245次浏览 245人参与
# 机械专业只有考研才有出路吗 #
93573次浏览 850人参与
# 金融财会交流会 #
99191次浏览 361人参与
# 摸鱼被leader发现了怎么办 #
41768次浏览 316人参与
# 潍柴工作体验 #
17722次浏览 17人参与
# 国企还是互联网,你怎么选? #
124307次浏览 961人参与
# 外包能不能当跳板? #
23206次浏览 192人参与
# 机械人还在等华为开奖吗? #
212378次浏览 1088人参与
# 盲审过后你想做什么? #
13996次浏览 121人参与
# 五一之后,实习真的很难找吗? #
50566次浏览 355人参与
# 你觉得通信/硬件有必要实习吗? #
92999次浏览 892人参与
# 国企/银行/研究所公司爆料 #
121928次浏览 742人参与
# Offer比较,求稳定还是求发展 #
39723次浏览 226人参与