免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 9102 | 回复: 21
打印 上一主题 下一主题

[C++] 为什么说,自从红黑树出来后,AVL树就被放到了博物馆里 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-12-29 09:06 |只看该作者 |倒序浏览
红黑树和平衡二叉树(AVL树)类似,都是在进行插入和删除操作时通过特定旋转保持二叉查找树的平衡,从而获得较高的查找性能。

那么要说插入和调整的性能,确实红黑树高一点,查找性能还是AVL更好啊。
树形结构建立以后,更多的操作不就是查找么。为什么要放弃AVL而选择红黑树呢? STL的map/set也是。

想不明白需求。

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
2 [报告]
发表于 2015-12-29 09:50 |只看该作者
rbt的好处,实时性强,平衡树性能跟不上

其实rbt在同行的竞争中也是有很大劣势的,例如现在很多互联网行业都流行用nosql,就是用的hash表,
rbt虽然性能比hash差点,但是有排序功能,

不然一切数据结构在hash面前的性能都是渣渣,平衡树基本已经没有价值了

论坛徽章:
9
摩羯座
日期:2013-08-15 15:18:48狮子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龙
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亚洲杯之韩国
日期:2015-03-26 10:16:442015亚冠之武里南联
日期:2015-08-18 14:55:52
3 [报告]
发表于 2015-12-29 09:51 |只看该作者
如果只考虑查找性能,你就算用个排好序的vector进行二分查找,速度和平衡二叉树也差不多,难道map和set要用连续内存去存放吗?
因为没办法确定需求,所以用一个综合性能最好的红黑树来实现,应该是一件容易理解的事情。

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2015-12-29 09:53 |只看该作者
这话谁说的?

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
5 [报告]
发表于 2015-12-29 11:26 |只看该作者
w_anthony 发表于 2015-12-29 09:51
因为没办法确定需求,所以用一个综合性能最好的红黑树来实现,应该是一件容易理解的事情。 ...


赞一个!

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
6 [报告]
发表于 2015-12-29 12:21 |只看该作者
本帖最后由 action08 于 2015-12-29 12:22 编辑

对的,rbt默认是综合性能最好的数据结构了,也是用在实时系统中的方案,除了hash

vertor有不少应用场景限制,什么应用不准备接受数据插入删除需求的,碰上了性能就会卡死人的,
vertor如果能用上当然好,查找性能只是稍微好过hash(一般的基础hsah算法也就是多两个cpu数学运算指令),

平衡树查找性能也只是稍微好过rbt,
——PS优势不明显,当然要抛弃

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
7 [报告]
发表于 2015-12-29 13:01 |只看该作者
红黑树不是严格平衡树,不需要在每次插入删除的时候调整,avl是严格平衡树,每次插入删除的时候都要旋转到平衡状态。
从统计角度来说红黑树的性能要高一点,但查找操作并不能严格保证O(logN),所以如果一棵树很少修改的话用AVL或许能快一点,但话说回来,如果几乎不修改的话用有序数组+二分查找性能比各种树都要好。

论坛徽章:
0
8 [报告]
发表于 2015-12-29 14:57 |只看该作者
action08 发表于 2015-12-29 12:21
对的,rbt默认是综合性能最好的数据结构了,也是用在实时系统中的方案,除了hash

vertor有不少应用场景限 ...


你说的实时性强,指的是插入的时候不需要旋转吧,所以就是实时性强了?

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2015-12-29 16:36 |只看该作者
回复 8# xdrere


    红黑插入时的旋转次数是可预期的吧,最多两次

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
10 [报告]
发表于 2015-12-29 17:01 来自手机 |只看该作者
互联网行业,比如论坛微几个增减少的场景了波之类,读多写少,你理解的吧


这帮人是最先蹦到nosql hash队列的,rbt还闲慢,
现实应用中,真心找不到
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP