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

相关推荐

03-19 21:39
门头沟学院 Java
Data_Seven:6 他说的 全是我的词儿啊
点赞 评论 收藏
分享
正在热议
更多
# 春招至今,你的战绩如何? #
10766次浏览 93人参与
# 你的实习产出是真实的还是包装的? #
1924次浏览 42人参与
# 米连集团26产品管培生项目 #
5976次浏览 216人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7594次浏览 43人参与
# 简历第一个项目做什么 #
31710次浏览 337人参与
# 重来一次,我还会选择这个专业吗 #
433481次浏览 3926人参与
# MiniMax求职进展汇总 #
24061次浏览 309人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187155次浏览 1122人参与
# 牛客AI文生图 #
21442次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152390次浏览 888人参与
# 研究所笔面经互助 #
118933次浏览 577人参与
# 简历中的项目经历要怎么写? #
310259次浏览 4215人参与
# AI时代,哪些岗位最容易被淘汰 #
63670次浏览 824人参与
# 面试紧张时你会有什么表现? #
30507次浏览 188人参与
# 你今年的平均薪资是多少? #
213090次浏览 1039人参与
# 你怎么看待AI面试 #
180059次浏览 1256人参与
# 高学历就一定能找到好工作吗? #
64327次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76497次浏览 374人参与
# 我的求职精神状态 #
448054次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363412次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160646次浏览 1112人参与
# 校招笔试 #
470952次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务