【问题标题】:CLRS 18-2.4 Suppose that we insert the keys {1,2,…,n} into an empty B-tree with minimum degree 2. How many nodes does the final B-tree have?CLRS 18-2.4 假设我们将键 {1,2,…,n} 插入到最小度数为 2 的空 B-tree 中。最终 B-tree 有多少个节点?
【发布时间】:2017-04-24 04:12:01
【问题描述】:

假设我们将键 {1,2,…,n} 插入到最小度数为 2 的空 B-tree 中。最终 B-tree 有多少个节点?

【问题讨论】:

    标签: algorithm b-tree clrs


    【解决方案1】:

    我们知道除了根节点之外的每个节点都必须至少有 t−1=1 个键,最多有 2t−1=3 个键。当 n≥2 时,最终的树最多可以有 n-1 个节点。除非 n=1,否则永远不可能有 n 个节点,因为我们只向非空节点插入一个键,所以总会有至少一个节点有 2 个键。接下来观察我们在一个节点中不会有一个以上的键,它不是我们的 B 树的右脊柱。这是因为我们插入的每个键都比存储在树中的所有键都大,所以它会被插入到树的右脊椎中。当除了右脊椎中最深的节点之外的每个节点都有 2 个键并且右样条中的最深节点有 3 个键时,会出现尽可能少的节点数。所以在高度 1,1 个节点,在高度 2,3 个节点,……,在 h 层,2^h-1 个节点。在这种情况下,n =2^(h+1)−1 其中 h 是 B-tree 的高度,B-Tree 中的节点数为 #nodes = 2^(h+1)−2−h = n−lg(n+1)。所以对于任何 n,最终的 B-Tree 必须有 n−⌊lg(n+1)⌋≤#nodes≤n−1(如果 n≥2)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 2017-03-02
      相关资源
      最近更新 更多