具有给定键的节点数最少的 2,4 树

2,4 tree with the fewest number of nodes with the given keys

假设我们有一组键 K = {1, 2, 3, 4, 5, 6,..., 15} 我们需要从中构建一个二四​​树,这样:

我的想法 -

二四树中的一个节点最多可以有3个键,每个节点有4个children,如果我们需要最小化节点数我们需要尽可能的保持节点满,但是似乎找不到可以保证这一点的策略。

一种似乎有利可图的方法是将数组分成三部分,然后在根部插入中位数,接下来第一个和最后一个 child 是 pre-determined 并重复相同的过程剩下的 keys.this 方法似乎也不尽如人意。

我们确实知道这种结构的最坏情况高度需要接近 4,最佳情况高度需要接近 2(使用 2、4 树高度属性 h ~ log(n))

是否有解决此类问题的策略(任何提示将不胜感激)?

制作节点数最少的2-4树:

  1. 从N个keys开始,floor(N/4) of then需要parents。选择这些键,尽量均匀分布,保证两边各有2-3个键。
  2. 对 parents 重复此过程,直到您最多拥有 3 个键。那些在根部。

所以从 15 个密钥开始,您在 4 个节点(3 parents)中有 12 个 leaf-level 个密钥。那 3 parents 可以进入根目录。