10/21 关于B树

注意:首先需要说明的一点是:B-树就是B树,没有所谓的B减树

M阶的B-tree是一棵具有下列结构特性的树:
(1)树的根或者是一片树叶,或者其儿子树在2到M之间。
(2)除根外,所有非树叶节点的儿子数在[M/2]到M之间。(符号[]表示向上取整)
(3)所有树叶都在相同的深度上。

问题:
For a B-tree of order m, estimate an upper bound for the height in terms of the number of keys N. Show your reasons, not just the bound.
对于一个m阶的B树,在关键字数目为N的情况下,估计它高度的上界。
说出你的理由,不止是边界。

:
设高度为h
每个结点的最小关键字数为上取整(m/2)-1
每个结点的最少结点数是 : n=上取整(m/2)-1+1= 上取整(m/2)
已知关键字数 N。
关键字总数 N= (n-1)(1+n1+n2+…+nh)=(n-1)(1-nh)/(1-n)=nh-1
可得h最大为log(n)(N+1),即log(n)(N+1)为h的上界。

参考:
在这里插入图片描述
在这里插入图片描述

每次从磁盘读取数据花费时间 t = a + bd;
a,b是常数,d是树的阶。
n是B树的元素总数。
B树进行操作花费的时间 T = 树的高度 × t;
问题转化为求树的高度。
设树高为h.
①每个结点最少元素数 = 上取整(d/2)- 1;
每个结点最少孩子数 k = 上取整(d/2);
此时n = (k-1)(1+k1+k2+…+kh)= kh-1
h <= log(上取整(d/2)) (n+1) ->O(log (d)(n))
②每个结点最多元素数 m - 1;
每个结点最多孩子数 m
此时n = (d-1)(1+d1+d2+…+dh)=dh-1;
h>=log(d)(n+1); ->O(log(d)(n))

所以最后花费的时间就估计为(a + bd)log (d)(n)

参考
1.平衡多路查找树(B-Tree)
2.B树和B+树的插入、删除图文详解
3.B树(B-树)插入、删除操作
4.一个对B树有更深了解的网站
5.简单剖析B树(B-Tree)与B+树
6.从B树、B+树、B*树谈到R 树

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值