[算法] 红黑树比一般的平衡2叉树,到底有什么特殊的优势和作用?
2016-05-26 23:44
316 查看
http://bbs.chinaunix.net/thread-3760493-1-1.html
一般的2叉树,加入平衡算法,也能达到动态平衡,那么红黑树到底有什么优势呢? 我看红黑树的增加删除,旋转,似乎也没有什么特别之处啊。
什么样的问题必须用红黑树来解决?
有时仅为了排序(建立-遍历-删除),不查找或查找次数很少,rb合算一些。
查找多的话用
AVL ,
添加删除多的话用 RB。
一般的2叉树,加入平衡算法,也能达到动态平衡,那么红黑树到底有什么优势呢? 我看红黑树的增加删除,旋转,似乎也没有什么特别之处啊。
什么样的问题必须用红黑树来解决?
红黑树与AVL的比较: AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多; 红黑是用非严格的平衡来换取增删节点时候旋转次数的降低; 所以简单说,如果你的应用中,搜索的次数远远大于插入和删除,那么选择AVL,如果搜索,插入删除次数几乎差不多,应该选择RB。 |
查找多的话用
AVL ,
添加删除多的话用 RB。
相关文章推荐
- Android控件TextView的跑马灯效果
- 51nod 1002 数塔取数问题
- LA 3213 Ancient Cipher (水题,转化)
- BZOJ 1588 [HNOI2002] 营业额统计
- 第二阶段冲刺2
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- 上传多张图片到服务器
- 检查当前手机网络的Android代码
- 【Android】数据存储
- 打造Android的MVP模式
- B/S是C/S什么意思,区别是什么?
- 5.16的作业
- Volley缓存机制
- maven项目中自动下载jar包的pom.xml配置
- DAS(开放系统的直连式存储)基础以及磁盘基础思维导图(Xmind)
- bzoj3203【SDOI2013】保护出题人
- main函数的实现解析
- Problem-X
- 分布式数据库
- Android 属性动画