关注
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
牛客热帖
更多
正在热议
更多
# 实习进度记录 #
233606次浏览 2897人参与
# 你喜欢工作还是上学 #
30250次浏览 240人参与
# 平安产险科技中心求职汇总 #
246028次浏览 2621人参与
# 考研可以缓解求职焦虑吗 #
9770次浏览 107人参与
# 非技术er求职现状 #
53398次浏览 389人参与
# 大学生该如何认清当下的就业环境? #
26827次浏览 214人参与
# 考研失败就一定是坏事吗? #
90944次浏览 747人参与
# 浅聊一下我实习的辛苦费 #
211900次浏览 1617人参与
# 机械只有读研才有出路吗? #
17641次浏览 208人参与
# 秋招白月光 #
109405次浏览 1297人参与
# 找不到好工作选择GAP真的丢人吗 #
51512次浏览 582人参与
# 考研人,我有话说 #
94345次浏览 851人参与
# 毕业论文怎么查AI率 #
16256次浏览 1124人参与
# 我的求职精神状态 #
23889次浏览 426人参与
# 五一出游找搭子 #
6908次浏览 75人参与
# 产品人求职现状 #
203776次浏览 1869人参与
# 一觉醒来,我成论文导师了… #
10043次浏览 185人参与
# 如果能重来,就业or读研你选哪个? #
127287次浏览 1597人参与
# 机械人避雷的岗位/公司 #
11910次浏览 69人参与
# 比特大陆工作体验 #
11008次浏览 79人参与
# 通信硬件公司爆料 #
134920次浏览 513人参与