B树的概念

基本概念

B树,又称多路平衡查找树(绝对平衡,无高度差),B树中所有结点的孩子个数的最大值称为B树的阶,通常用表示。一棵m阶B树或为空树,或为满足如下特性的m叉树:
在这里插入图片描述

  1. 根结点的子树数 ∈ [ 2 , m ] \in[2,m] [2,m];根结点的关键字数 ∈ [ 1 , m − 1 ] \in[1,m-1] [1,m1]。其他结点的子树数 ∈ [ ⌈ m / 2 ⌉ , m ] \in[\lceil m/2\rceil,m] [⌈m/2,m];其他结点的关键字数 ∈ [ ⌈ m / 2 ⌉ − 1 , m − 1 ] \in[\lceil m/2\rceil-1,m-1] [⌈m/21,m1]
    (包括失败结点也成立)
  2. 对于任一结点,其所有子树高度都相同
  3. 关键字的值:子树0<关键字1<子树1<关键字2<子树2<…(类比二叉查找树 左<中<右)
  4. 所有叶子结点均不带信息(为失败结点)

B树的高度问题

含n个关键字的m阶B树,最小、最大高度是多少?(此处n个关键字为总关键字数)
在这里插入图片描述

  1. 最小高度
    让所有结点尽可能满
    → \rightarrow 每个结点的关键字数都为m-1
-root第2层第3层第h层
结点数1m m 2 m^2 m2 m i − 1 m^{i-1} mi1

则高度为h的m阶B树,最多总关键字数为
( m − 1 ) ( 1 + m + m 2 + . . m h − 1 ) (m-1)(1+m+m^2+..m^{h-1}) (m1)(1+m+m2+..mh1)
n ≤ ( m − 1 ) ( 1 + m + m 2 + . . m h − 1 ) n\leq(m-1)(1+m+m^2+..m^{h-1}) n(m1)(1+m+m2+..mh1)
h ≥ l o g m ( n + 1 ) h\geq log_m(n+1) hlogm(n+1)

  1. 最大高度
    让所有结点仅可能的空,分叉尽可能的少
-root第2层第3层第h层
结点数122* ⌈ m / 2 ⌉ \lceil m/2 \rceil m/22* ( ⌈ m / 2 ⌉ ) h − 2 (\lceil m/2 \rceil)^{h-2} (⌈m/2)h2

第h+1层(叶子结点)失败结点共有 2 ∗ ( ⌈ m / 2 ⌉ ) h − 1 2*(\lceil m/2 \rceil)^{h-1} 2(⌈m/2)h1

又因为n个关键字(总)的B树一定有n+1个叶子结点(理解为 [ − ∞ , + ∞ ] [-\infty,+\infty] [,+]被n个关键字切分为n+1个区域)

n + 1 ≥ 2 ∗ ( ⌈ m / 2 ⌉ ) h − 1 n+1\geq2*(\lceil m/2 \rceil)^{h-1} n+12(⌈m/2)h1

h ≤ l o g ⌈ m / 2 ⌉ n + 1 2 + 1 h\leq log_{\lceil m/2\rceil}{n+1\over 2}+1 hlogm/22n+1+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快苏排序OAO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值