面试问为什么hashMap用红黑树,不用平衡二叉树?

hashMap红黑树是校招面试常见的考点之一,比如经典的试题 “为什么hashMap底层结构用红黑树而不用平衡二叉数呢”。

前两天,我们面试了一个实习生,先问项目的部分,但是这个同学的项目准备的不是很好,我们就说这个水平估计过不了,学生着急了,说这个八股文和hashMap红黑树都准备了很多。

那我紧接着就问了一个红黑树的问题。我说hashMap底层的结构用了红黑树,为什么这个底层结构用红黑树而不用平衡二叉数。

这个学生当时就卡住了,他说这个红黑树查询的快,我说为什么红黑树查询的快,他扯了一堆理由。我说那为什么平衡二叉树查询的比他慢呢,他又卡住了。所以现在很多学生准备校招或者实习的考点,光背是不行的,要重点理解。

因为红黑树,它是数据结构的一部分,它是个动态的查找树而且是个二叉树。我们最简单的动态二叉树是二叉查找树,然后往后走就变成了我们的平衡二叉树,后面又有了新的数据结构红黑树,

红黑树和平衡二叉树在查询效率上没有太大区别,因为他俩都是压缩的。这个树他不是深度,为什么会出现平衡二叉树,因为二叉查找树可能会很深很高,查询效率会很慢,那么平衡二叉数就用平衡因子把它给压缩了。红黑树也是用红节点和黑节点,把这个树的高度把它压缩了,那么它的查询效率就差不多。

为什么不用平衡二叉数而用红黑树呢,因为这个动态树就是节点,数据会不断的增加或者是删除,那你的树要调整,因为树有他的要求,你的高度必须满足,那红黑树的调整效率是比平方二叉树要好。有朋友说那为什么要好,这个点不做解答,因为面试的时候不会去考你红黑树的调整策略,因为那个调整是很复杂的,可能有十多种情况。

所以同学们在准备校招或者实习面试考点的时候,不要死记硬背,一定要深层理解,这样才能有效面对面试官的追问。

#校招##计算机##面试##秋招##我发现了面试通关密码#
全部评论
有人专门测过,在处理大数据量的时候,平衡二叉树和红黑树效率几乎差不多,他俩区别在于,红黑树在不平衡时调整树节点的效率和操作比AVL要更好设计和实现
39
送花
回复 分享
发布于 2023-07-20 20:01 北京
我印象中avl要求调整后不能差超过一级,红黑树则是在两倍以内都是可以的,红黑树最多不超过三次的旋转即可恢复平衡,而avl是不保证的
19
送花
回复 分享
发布于 2023-07-22 16:29 四川
现代汽车中国前瞻数字研发中心
校招火热招聘中
官网直投
HashMap使用红黑树是因为红黑树相对于平衡二叉树有更好的性能表现。 首先,红黑树的平衡性能比平衡二叉树更好。红黑树的平衡性能是通过对节点进行颜色标记和旋转操作来实现的,而平衡二叉树只能通过旋转操作来实现平衡。因此,红黑树的平衡性能更好,可以更快地进行插入、删除和查找操作。 其次,红黑树的空间利用率比平衡二叉树更高。红黑树的节点结构比平衡二叉树的节点结构更紧凑,因此在存储大量数据时,红黑树的空间利用率更高。 最后,红黑树的实现比平衡二叉树更简单。红黑树的实现比平衡二叉树的实现更简单,因为红黑树的平衡性能是通过颜色标记和旋转操作来实现的,而平衡二叉树需要更复杂的平衡算法来实现平衡。 因此,HashMap使用红黑树来实现内部的数据结构,以提高性能和空间利用率。
17
送花
回复 分享
发布于 2023-07-25 17:44 广东
这和你实际工作,有什么关系
14
送花
回复 分享
发布于 2023-07-25 18:50 陕西
我只能说面试问红黑树的都是***😁
12
送花
回复 分享
发布于 2023-09-04 11:21 四川
没毛病,希望牛客多点这种帖子。
10
送花
回复 分享
发布于 2023-07-20 20:27 广东
插入和删除的效率吧,AVL可能会进行很多次旋转,红黑树最多三次就可以。而且红黑树虽然复杂一点,但时间复杂度和AVL差别不大
4
送花
回复 分享
发布于 2023-08-11 17:24 浙江
m
1
送花
回复 分享
发布于 2023-07-24 21:46 湖南
你怎么知道我408刚复习完数据结构
1
送花
回复 分享
发布于 2023-07-29 10:36 江西
很棒!
点赞
送花
回复 分享
发布于 2023-07-21 00:05 上海
m
点赞
送花
回复 分享
发布于 2023-07-22 08:40 陕西
m
点赞
送花
回复 分享
发布于 2023-07-22 12:18 上海
m
点赞
送花
回复 分享
发布于 2023-07-22 17:02 浙江
m
点赞
送花
回复 分享
发布于 2023-07-25 10:13 广东
没看懂,那应该咋答
点赞
送花
回复 分享
发布于 2023-07-25 10:25 重庆
m
点赞
送花
回复 分享
发布于 2023-07-25 10:41 黑龙江
m
点赞
送花
回复 分享
发布于 2023-07-25 11:28 陕西
m
点赞
送花
回复 分享
发布于 2023-07-25 11:45 湖北
虽然但是,红黑树不就是平衡二叉树的一种吗?你的平衡二叉树可能是指的AVL?
点赞
送花
回复 分享
发布于 2023-07-26 17:10 台湾
点赞
送花
回复 分享
发布于 2023-07-27 22:08 辽宁

相关推荐

#25届机械人为了秋招做了哪些准备?#其实说白了校招就是一场信息战,你能和其他人拉开信息差,你就可以在秋招抢跑,当然自身实力也要过硬,机械行业你有几次实习经验,那你完全可以在hr那里名列前茅,当然我知道机械的实习是多么困难的,对于学机械的女孩子我更是深有体会,这个行业对女孩子并不友好,我当时找实习和找工作的时候处处碰壁,最后还是通过家里的关系才有了机械的第一份实习,进厂了也是各种不被看好,会故意对你说一些莫名其妙的话,如果遇到一些道貌岸然的人还会说出一些无法接受的话,说跑题了,这个话题应该是25届的学弟学妹们自己来说做了哪些准备的,我就充数,说说我当时做了哪些准备,和缺失的首先肯定要确定自己的职业规划,确认求职方向,机械一般都会有两个方向,列如:机械工程师,结构工程师确认好了就要以自身出发,自己的能力可以在哪些大厂立足,哪些企业最欠缺我这样的人才,当然机械主打的就是越老越吃香吗,所以建议大家还是去新型企业,车企的话看24届的情况很不乐观,学弟学妹们秋招是要理性看待,确认好了职业规划,就该着手准备简历了,每必要花钱去写简历,大可不必,牛客现在的简历点评和那些收钱改简历的水平没差,更何况现在有帮帮团的话题,一切都能迎刃而解,好好准备简历,秋招的第一步就准备好啦!明确校招时间:提前批从6月底到8月,正式批从8月到10月,11-12月会有少量补录;最后就算提前做足准备进入到正式求职阶段了,一般的求职流程如下:网申:网申前需要提前制作好简历,搜集好招聘信息,然后及时投递,关于求职平台主流的都行,还是推荐官网,测评:一般测评都是心理或者行为类测评,不需要太多准备;笔试:一般是面试问题基础题考察,面试:面试是求职的重点,不同的行业-公司-岗位的面试流程也不一样,比如AI面试、单面等等,都需要针对性的准备才行比如:牛客看看面经;offer选择:先拿到几份offer了才有的选,在此不多赘述。
点赞 评论 收藏
分享
102 409 评论
分享
牛客网
牛客企业服务