关注
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
相关推荐
牛客热帖
更多
正在热议
更多
# 刚入职就____,这样正常吗? #
34327次浏览 287人参与
# 哪些公司对双非友好 #
61757次浏览 473人参与
# 小红书校招直播来了 #
50145次浏览 225人参与
# 你是怎么和mt相处的? #
32059次浏览 186人参与
# 面试反问你会问什么 #
41943次浏览 582人参与
# 实习返校后,你的精神状态是__? #
22559次浏览 123人参与
# 你朋友圈最大的人脉是谁? #
15209次浏览 118人参与
# 上班苦还是上学苦呢? #
273571次浏览 1727人参与
# 最难的技术面是哪家公司? #
42266次浏览 699人参与
# 关于求职,我有X不投 #
21868次浏览 150人参与
# 实习必须要去大厂吗? #
126864次浏览 1471人参与
# 秋招遇到的奇葩面试题 #
33356次浏览 181人参与
# 这个工作能去吗 #
14567次浏览 113人参与
# 招银网络求职进展汇总 #
135794次浏览 885人参与
# 机械人,你被简历秒挂的企业有哪些? #
57912次浏览 320人参与
# 找工作前vs找工作后的心路变化 #
19048次浏览 151人参与
# 4399求职进展汇总 #
29141次浏览 153人参与
# kpi面有什么特征 #
73001次浏览 455人参与
# 上班到公司第一件事做什么? #
89578次浏览 657人参与
# 机械人,签完三方你在忙什么? #
58848次浏览 228人参与
# 你觉得机械有必要实习吗 #
61294次浏览 476人参与