簡體   English   中英

B+樹插入順序

[英]B+ tree insertion order

有沒有辦法找到B+樹的原始插入順序?

我有這棵樹:

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

示例樹

不。

例如,在您的情況下,最后兩個插入可能是7, 1717, 7並且絕對無法分辨哪個是哪個。 確實, 5, 6, 7三者中的一個是在另外兩個之后插入的,沒有記錄哪個是哪個。

這也可以從鴿巢原理中直接看出。 首先,讓我們為可以有多少k路 B 樹設置一個上限,其中有n東西。

任何具有n事物的b-tree的結構都可以編碼為節點大小的流。 從頂層節點的大小,你知道有多少第二層節點,第二層第三層也是如此。 一個節點可以有1..k東西。 節點不能多於元素。 因此,我們可以通過首先指定有多少個節點,然后指定節點的大小來指定 B 樹。 (並非所有數字集都是 B 樹。)對於 B 樹的每個大小s ,都有k^s <= k^n個。 因此nk^n是可以有多少k路 B 樹的上限。 這是指數增長。

但是可以插入元素的順序數是n! . 此函數的增長速度嚴格快於指數增長,因此您無法從 B 樹中恢復順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM