# B 树
# B 树的定义:
一颗 m 阶 B 树是一颗平衡的 m 路搜索树
# B 树的特性:
-
每个结点至少两个子女
-
每个非根节点包含的关键字个数 n:,
每个非根节点子树个数 k:
-
根节点的关键字个数 n:
根节点的子树个数 k:
-
所有的非终端结点中包含下列信息数据
- K_i是关键字,K_i < K_
- 为指向子树根节点的指针,且指针 所指子树中所有结点的关键字均小于
- 所指子树中所有结点的关键字均大于
-
叶子结点都在同一层
-
对于任一结点其子树高度相同
-
B 树的 m 值比树高大很多,m 的实用值一般在 100-500
# B 树的查找:
待查找元素,如果:
- ,准备查找 页
- ,准备查找 页
- ,准备查找 页
页内存储方式:顺序存储或者采用二叉排序树的形式
页内检索算法:顺序检索或者折半查找
# B 树的高度(不包括叶子结点):
含 n 个关键字的 m 阶 B 树:
-
最小高度:
让每个结点尽可能的满,每个结点有 个关键字, 个分叉,
则 ,
所以
-
最大高度:
让各层分支尽可能少,即根节点有两个分支,其他节点只有 个分支
各层节点至少有:
第一层 1、第二层 2、第三层 、第三层 $2\lceil m/2\rceil^2 $
第 层 、第 层(即叶子节点 / 失败结点) 2\lceil m/2\rceil ^
n 个关键字的 B 树一定有 个叶子结点,所以,
即