关注
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
相关推荐
04-19 21:14
南昌大学 嵌入式软件开发 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届春招投递记录 #
32662次浏览 254人参与
# 妈妈治愈了你哪些脆皮时刻 #
47508次浏览 360人参与
# 27届实习投递记录 #
114756次浏览 1256人参与
# 我的工作日记 #
207954次浏览 1829人参与
# 我的求职总结 #
512645次浏览 7094人参与
# 你投了多少家公司?进展是___ #
248220次浏览 1449人参与
# 大学生该如何认清当下的就业环境? #
178822次浏览 943人参与
# AI面会问哪些问题? #
134573次浏览 3466人参与
# 要毕业了,再不说就来不及了 #
6355次浏览 111人参与
# 我与AI的日常 #
10784次浏览 202人参与
# 27届求职交流 #
500346次浏览 4665人参与
# 如果公司降薪,你会跳槽吗? #
168834次浏览 972人参与
# 今年秋招还有金九银十吗 #
85128次浏览 518人参与
# 25届非技术实习投递记录 #
159408次浏览 1027人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
168759次浏览 916人参与
# 应届生应该先就业还是先择业 #
202348次浏览 945人参与
# 快手求职进展汇总 #
775709次浏览 7155人参与
# 你以为的实习VS真实的实习 #
144213次浏览 760人参与
# 你觉得什么岗位会被AI替代 #
65407次浏览 386人参与
# 你的秋招进行到哪一步了 #
2803138次浏览 23414人参与

神州信息成长空间 151人发布