b+树树高

MySQL中b+树索引的问题:
“假设当前数据表的数据量为N,每个磁盘块的数据项的数量是m,则树高h=㏒(m+1)N”;
这个树高怎么求得。。
#阿里巴巴##腾讯##百度##Java工程师#
全部评论
二叉树就是log2为底N,b+树是从二叉树变化过来的多路树。m项就有 m+1个孩子指针,从头指到尾多一个。所以 时间界就是 log(m+1)为底N,的树高。你可以通过树高计算总结点数,然后两边取对数推导得到。用归纳法证明下也行。
2 回复 分享
发布于 2017-08-24 18:38
http://blog.csdn.net/v_JULY_v/article/details/6530142/ 3.4B树的高度     根据上面的例子我们可以看出,对于辅存做IO读的次数取决于B树的高度。而B树的高度由什么决定的呢?     若B树某一非叶子节点包含N个关键字,则此非叶子节点含有N+1个孩子结点,而所有的叶子结点都在第I层,我们可以得出: 因为根至少有两个孩子,因此第2层至少有两个结点。 除根和叶子外,其它结点至少有┌m/2┐个孩子, 因此在第3层至少有2*┌m/2┐个结点, 在第4层至少有2*(┌m/2┐^2)个结点, 在第 I 层至少有2*(┌m/2┐^(l-2) )个结点,于是有: N+1 ≥ 2*┌m/2┐I-2; 考虑第L层的结点个数为N+1,那么2*(┌m/2┐^(l-2))≤N+1,也就是L层的最少结点数刚好达到N+1个,即: I≤ log┌m/2┐((N+1)/2 )+2; 所以 当B树包含N个关键字时,B树的最大高度为l-1(因为计算B树高度时,叶结点所在层不计算在内),即:l - 1 = log┌m/2┐((N+1)/2 )+1。 这个B树的高度公式从侧面显示了B树的查找效率是相当高的。 曾在一次面试中被问到,一棵含有N个总关键字数的m阶的B树的最大高度是多少?答曰:log_ceil(m/2)(N+1)/2 + 1 (上面中关于m阶B树的第1点特性已经提到:树中每个结点含有最多含有m个孩子,即m满足:ceil(m/2)<=m<=m。而树中每个结点含孩子数越少,树的高度则越大,故如此)。在2012微软4月份的笔试中也问到了此问题。
点赞 回复 分享
发布于 2017-08-24 18:20

相关推荐

01-30 22:03
门头沟学院 Java
用微笑面对困难:我滴妈,【俩月】【实习】【主管】仨debuff吃满了,独立设计开发的项目写了绝大占比的运营板块,你独立开发,那维护、问题复盘、日志更新、bug、策划书全是自己整的? 不建议写那么大,可以从小出发更容易
点赞 评论 收藏
分享
评论
点赞
19
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
2842次浏览 41人参与
# HR最不可信的一句话是__ #
970次浏览 31人参与
# MiniMax求职进展汇总 #
24792次浏览 321人参与
# 春招至今,你的战绩如何? #
14263次浏览 133人参与
# AI面会问哪些问题? #
859次浏览 21人参与
# 你的实习产出是真实的还是包装的? #
2541次浏览 48人参与
# 巨人网络春招 #
11473次浏览 224人参与
# 沪漂/北漂你觉得哪个更苦? #
1035次浏览 29人参与
# 你做过最难的笔试是哪家公司 #
1053次浏览 18人参与
# AI时代,哪个岗位还有“活路” #
2607次浏览 49人参与
# XX请雇我工作 #
51137次浏览 171人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7931次浏览 43人参与
# 简历第一个项目做什么 #
32025次浏览 357人参与
# 简历中的项目经历要怎么写? #
310831次浏览 4256人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152767次浏览 888人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187513次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64461次浏览 860人参与
# 如果重来一次你还会读研吗 #
229956次浏览 2011人参与
# 投格力的你,拿到offer了吗? #
178133次浏览 889人参与
# 你怎么看待AI面试 #
180592次浏览 1291人参与
# 正在春招的你,也参与了去年秋招吗? #
364089次浏览 2640人参与
# 腾讯音乐求职进展汇总 #
160802次浏览 1114人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务