B树、B+树、红黑树


参考: http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html

B树

最简单的B树就是2-3树,一个节点最多存储2个值。
可以通过二分法快速查找,时间复杂度为o(logN)。
在这里插入图片描述

  1. B树的每个节点都是有效值,且可以进行多路查询(存储),减小了树的高度,在文件系统和数据库中都是常见的数据结构。
  2. 多路存储对B树来说改动非常小,所以适合数据量庞大的文件系统。
  3. 在文件系统中,如果不使用B树的结构,把现在的3路B树的路数无限扩大,就会变成一个数组。
    类似这样这样的3路B树在这里插入图片描述
    变成这样的数组
    在这里插入图片描述
    假设文件系统一次性只能加载2个数,显然数组的形式是不适用的,B树更加的合适。
    先对B树进行查找,查找到将对应的节点加载进内存。

B+树

在这里插入图片描述
B+树与B树的区别就在,B+树的非叶子节点保存的是索引值,所有的数据值在叶子节点,叶子节点间使用链表链接。

B树与B+树对比

B树的查找可能比B+树更加快点,因为B树的数据值都在对应的节点上,可能会比B+树更快的返回。但是如果要去连续的一段值的话,B+树更加的合适。符合空间局部性。

红黑树

红黑树的性质:
1)一个节点不是黑色就是红色。
2)根节点一定是黑色
3)红色节点的子节点一定是黑色
4)红黑树的叶子节点一定是黑色(null值的节点)
5)从一个节点开始到该节点所以子孙节点的路径上黑色节点的数量是相同的。
在这里插入图片描述

对比B树和红黑树

红黑树有着比B树更快的查询效率,为什么文件系统中不使用B树?
因为,对红黑树的插入、删除会引起整棵树的改动会比较大,但是B树的插入和删除只会引起局部的变化。所以兼顾了这点,文件系统和数据库更倾向于B树。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值