B-树系列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B-树系列相关的知识,希望对你有一定的参考价值。

B-树家族:
1.多叉的平衡搜索树(允许一个结点有多个孩子)
习惯上可以把 B- 树 称为 M- 树,M的意思是结点中最多有多少个孩子
技术图片
2.特性
K(甲) < Ka < K(乙) < Kb < K(丙)
3.查找思路:
小于k,在k之前的子树中找
等于k,找到了
大于k,比较下一个k,如果没有后续k了,就在最后一个子树中查找
4.插入过程
首先所有的插入操作,必须都是在叶子结点上
B- 树的修复:分裂修复
分裂:把 key 个数超出的结点分裂成两个结点
左边结点:[0,mid) 右边结点:(mid,length)
中间的 key 保存在父节点中,随着分裂,可能引起父节点也破坏规则,进而导致父节点继续分裂
注意:
(1)B-树的生长是朝上生长的,随着分裂长出的结点,只有根节点才会新建结点
(2)B-树能保证所有的叶子都在同一层(从根到所以路径的长度是一样长)
5.二叉平衡搜索树和多叉平衡搜索树的区别
在 key 的数量一定的情况下,多叉树的高度一定是小于二叉树的
6.B-树的适用场景
数据保存在硬盘中(包含其他低速IO设备)时,所用的平衡搜索树。
mysql中为什么用 B- 树做索引,而不用红黑树,因为MySQL的数据存储在硬盘中

以上是关于B-树系列的主要内容,如果未能解决你的问题,请参考以下文章

10-看图理解数据结构与算法系列(B+树)

数据结构学习系列 -- 漫画B B+树

数据结构学习系列 -- 漫画B B+树

《深入浅出话数据结构》系列之什么是B树B+树?为什么二叉查找树不行?

Python爬虫系列:搜索文档树

线段树教做人系列HDU 4867 XOR