红黑树和B+树是两种比较重要的高级数据结构。接下来我们来对二者做一个对比分析。
红黑树
1 | 红黑树的五个性质: |
B+树
1 | 一个m阶的B+树具有如下几个特征: |
B树
1 | 一个m阶的B树具有如下几个特征: |
对比分析
数据结构 | 查询性能 | 插入性能 | 删除性能 | 优点 | 缺点 | 适用场景 |
---|---|---|---|---|---|---|
红黑树 | O(logN) | O(logN) | O(logN) | 增删查性能高,相对平衡二叉树简单 | 树的深度相对B树高 | 用在内部排序,即全放在内存中的,如:STC的map;hashtable冲突到一定程度链表改为红黑树;epoll监听句柄 |
平衡二叉树 | O(logN) | O(logN) | O(logN) | 增删查性能高 | 维护平衡的旋转逻辑复杂 | 暂无 |
B+树 | 与树高有关,不超过节点数 | 同查询 | 同查询 | 完美支持磁盘预读 | 性能相比红黑树差 | 数据库索引 |
B-树 | 与树高有关,不超过节点数 | 同查询 | 同查询 | 支持磁盘预读 | 节点存储数据,相比B+树占用空间大 | 数据库索引 |