首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >B+树插入顺序

B+树插入顺序
EN

Stack Overflow用户
提问于 2020-10-19 01:46:17
回答 1查看 176关注 0票数 3

有没有可能找到B+树的原始插入顺序?

我有一棵树:

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

Example tree

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-20 00:15:15

不是的。

例如,在您的示例中,最后两个插入可能是7, 1717, 7,并且绝对无法区分哪个是哪个。事实上,在5, 6, 7中,三个中的一个插入在其他两个之后,没有记录哪一个是哪一个。

这也可以立即从鸽子洞原理中看出。首先,让我们设置一个上限,说明可以有多少个k-way B-tree中包含n内容。

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

但是插入元素的顺序数是n!。此函数的增长速度严格快于指数增长,因此您无法从B树恢复顺序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64416438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档