2

有人可以看看练习 10.1 和第二 (2) 部分[手册]

问题在第 88 页,解决方案在第 89 页图 10.3。

问题:

10.1

2.显示将带有键 3 的数据条目插入原始树所产生的 B+ 树。插入需要多少页读取和页写入?

结果密钥是否正确?我相信不是。

原始树 在此处输入图像描述

书的答案(添加元素 3 后)

带有键 3 的数据条目进入第一个叶页 F。由于 F 最多可以容纳四个数据条目(d = 2),因此 F 分裂。新叶子的最低数据条目被放弃给同样分裂的祖先。结果如图 10.3 所示。插入将需要 5 次页面写入、4 次页面读取和 2 个新页面的分配。

在此处输入图像描述

我的答案(添加元素 3 后)

带有键 3 的数据条目进入第一个叶页 F。由于 F 最多可以容纳四个数据条目(d = 2),因此 F 拆分并将中间数据条目移动到父页面。新叶子的最低数据条目3被交给同样分裂的祖先。

在此处输入图像描述

假设:这本书是否将 5 作为关键,因为如果使用了 3,那么应该浪费一个地方?我们有 4 个地方,我们只能使用 3 个。第四个地方永远是免费的。

4

1 回答 1

0

两个答案都会产生有效的树。为什么要关心中间记录(3)是落在第一个数据块还是第二个数据块?文本的答案具有非常小的实际优势,因为插入升序键序列(通常超过降序序列)将产生稍微密集的树,在这种情况下会导致 I/O 稍微减少。

于 2012-10-06T21:42:56.863 回答