在大规模数据查找中大量信息存储在外存磁盘中,选择正确的数据结构可以显著降低查找时间。B-树和B+树就是两种常见的高效的外存数据结构。
一棵m阶(每个节点最多有m棵子树)的B-树,或者是空树,或者为满足一下特性的m叉树:
(1)树中的每个节点最多有m棵子树
(2)树的根节点至少有两个子树
(3)树的所有叶子节点都在同一层
(4)除了根节点以外,其他非叶子节点至少要有m/2(取上界)个子树
(5)有n棵子树的非叶子节点包括的信息如下(恰好包括n-1个关键字):
(n,T0,K1,T1,K2,T2,...,Kn,Tn)
n是关键字的个数,n+1是子树的个数;子树比关键字数量多一个哦。Ki代表关键字,Ki<Ki+1,排序好的嘛,Ti代表子树的指针,Ti-1所指的子树中所有节点的关键字均小于Ki,Tn所指子树中所有节点的关键字均大于Kn。
根据以上的特性我们能看出B-树往往至少是半满的,有较少的层数,而且是完全平衡的
B-树:
B-树主要应用在文件系统中。为了将大型数据库文件存储在硬盘上 以减少访问硬盘次数为目的 在此提出了一种平衡多路查找树——B-树结构 。
一棵m阶(每个节点最多有m棵子树)的B-树,或者是空树,或者为满足一下特性的m叉树:
(1)树中的每个节点最多有m棵子树
(2)树的根节点至少有两个子树
(3)树的所有叶子节点都在同一层
(4)除了根节点以外,其他非叶子节点至少要有m/2(取上界)个子树
(5)有n棵子树的非叶子节点包括的信息如下(恰好包括n-1个关键字):
(n,T0,K1,T1,K2,T2,...,Kn,Tn)
n是关键字的个数,n+1是子树的个数;子树比关键字数量多一个哦。Ki代表关键字,Ki<Ki+1,排序好的嘛,Ti代表子树的指针,Ti-1所指的子树中所有节点的关键字均小于Ki,Tn所指子树中所有节点的关键字均大于Kn。
根据以上的特性我们能看出B-树往往至少是半满的,有较少的层数,而且是完全平衡的