关注
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月份的笔试中也问到了此问题。
查看原帖
点赞 1
相关推荐
鑫鑫向栄:爱你,妈咪 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习简历求拷打 #
6498次浏览 92人参与
# 担心入职之后被发现很菜怎么办 #
264859次浏览 1121人参与
# 秋招被挂春招仍然能投的公司 #
5181次浏览 87人参与
# mt对你说过最有启发的一句话 #
30545次浏览 374人参与
# 什么是优秀的实习经历 #
6983次浏览 193人参与
# 考研失败就一定是坏事吗? #
199135次浏览 1359人参与
# 摸鱼被leader发现了怎么办 #
97227次浏览 621人参与
# 为了找工作你花了哪些钱? #
74585次浏览 359人参与
# 秋招特别不鸣谢 #
13925次浏览 171人参与
# 选实习,你更看重哪方面? #
11931次浏览 204人参与
# 今年秋招你收到了多少封邮件? #
16834次浏览 217人参与
# 你今年的保底offer是哪家 #
154596次浏览 670人参与
# 携程求职进展汇总 #
838179次浏览 5504人参与
# 第一次面试 #
1035571次浏览 13682人参与
# 毕业论文进行时 #
20518次浏览 129人参与
# 工作中遇到的歹人 #
25043次浏览 298人参与
# 找工作有哪些冷知识 #
204807次浏览 2603人参与
# 机械/制造每日一题 #
80035次浏览 1409人参与
# 被上班搭子“传染”了哪些习惯 #
4777次浏览 94人参与
# 工作后,你落下了哪些病根 #
11508次浏览 175人参与