微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

B +树插入顺序

如何解决B +树插入顺序

是否可以找到B +树的原始插入顺序?

我有这棵树:

{[(1 2)3(5 6 7)] 8 [(9 10)11(12 13)14(14 16 17)18(19 20)]}

Example tree

解决方法

否。

例如,在您的情况下,最后两个插入可能是7,1717,7,并且绝对没有办法确定哪个是哪个。的确,5,6,7中的三个是在其他两个之后插入的,没有记录是哪个。

这也可以从鸽子洞原理立即看出。首先,让我们对其中包含k事物的n方式B树进行上限。

具有b-tree的任何n的结构都可以编码为节点大小的流。从顶层节点的大小,您知道有多少第二层节点,从第二层到第三层也一样。节点中可以有1..k个事物中的任何一个。节点不能超过元素。因此,我们可以通过首先指定有多少个节点,然后指定节点的大小来指定B树。 (并非所有数字集都是B树。)对于B树的每个大小s,其中有k^s <= k^n个。因此,n k^n是可以有多少个k方式B树的上限。这就是指数增长。

但是可以插入元素的订单数为n!。此函数的增长严格快于指数增长,因此您无法从B树恢复订单。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。