B-树
定义
B-树是一种平衡的 M(M>=2)路查找树,B-树也可以是空树,每个节点可以拥有多个子节点,从而有效减少树的高度,提高查找效率。
特性
- 根节点至少有两个孩子;
- 每个非根节点至少有 M/2-1(上取整) 个关键字,至多有 M-1 个关键字,并且以升序排列;
- 每个非根节点至少有 M/2(上取整) 个孩子,至多有 M 个孩子;
- key[i] 和 key[i+1] 之间的孩子节点的值介于 key[i]、key[i+1] 之间;
- B-树通过节点的分裂和合并操作来保持树的平衡,所有叶子节点都位于同一层。
B-树的插入分析
以 M=3 为例,每个节点中存储两个数据,两个数据可以将区间分割为三部分,即最多有两个关键字,三个孩子。
但是为了方便,对于每个节点,当插入第三个关键字时不分裂,在插入第三个关键字之后再分裂,可以想象成每个节点最多有三个关键字,最多有四个孩子。即:

下面以插入序列【53,139,75,49,145,36,101】为例构建 B 树:
【1】插入 53

【2】插入 139

【3】插入 75

【4】引发分裂

【5】插入 49 和 145

【6】插入 36





















