面试问为什么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 辽宁

相关推荐

102 408 评论
分享
牛客网
牛客企业服务