题13

题目

Q:在由 个初始归并段构建的 阶最佳归并树中,度为 的结点个数是 ( ).
A.
B.
C.
D. 无法确定

分析

A: 阶最佳归并树中只有度为 0 和 的结点。设结点总数为 ,度为 0 的结点数为 ,度为 的结点数为 ,则 ,因此 ,求得

C
1. 题目解析
这道题考查的是对最佳归并树结构的理解,特别是节点度数和初始归并段数量之间的关系。

  • m: 初始归并段的数量,也就是最佳归并树中叶子节点的数量。
  • k: 归并的阶数,也就是最佳归并树中非叶子节点的度 (除了根节点,其他节点都有 k 个孩子)。
    2. 最佳归并树
    最佳归并树,也称为哈夫曼归并树,是外部排序中用于优化多路归并阶段的一种特殊树形结构。它的“最佳”体现在于:
  • 目标: 最小化磁盘 I/O 次数。 外部排序中,磁盘 I/O 是主要的性能瓶颈。
  • 策略: 让长度短的归并段尽早参与合并。 因为短段的读取和合并开销更小。
  • 方法: 利用哈夫曼树的思想,构建一棵带权路径长度 (WPL) 最小的 k 叉树。
    • 每个节点代表一个归并段,节点权值代表段长度。
    • WPL 代表了外部排序中总的磁盘 I/O 次数。
      3. 为什么最佳归并树是最佳的?
      最佳归并树的构建过程,本质上是将权值小的节点(代表短归并段)尽可能地放在靠近根节点的位置。这样做的好处是:
  • 减少 I/O 次数: 短段优先合并,可以减少读取和写入磁盘的次数。
  • 平衡归并过程: 避免某个长段被反复读取多次,导致 I/O 次数增加。
    4. 与败者树的关系
    最佳归并树和败者树都是为了优化外部排序归并阶段而设计的,但它们的作用不同:
  • 最佳归并树: 用于确定归并的顺序,指导我们以最优的策略合并归并段。
  • 败者树: 用于在每次归并操作中高效地选择最小元素,加快归并过程。
    最佳归并树不是对败者树的改进,而是与其配合使用,共同提高外部排序的效率。
    5. 推理过程
    回到题目,我们可以用以下方法推导出正确答案:
  • 度和节点数量的关系: 在一棵树中,除了根节点外,每个节点都有一个父节点。
  • k 叉树的性质: 在 k 叉树中,度为 k 的节点数量是其子节点数量除以 k。
  • 最佳归并树的特殊性: 最佳归并树的叶子节点总数是 m,且所有内部节点的度都是 k
    根据以上分析,我们可以得出:
  • k 阶最佳归并树的内部节点数量 = (叶子节点数量 - 1) / (k - 1) = (m - 1) / (k - 1)
    6. 答案
    所以,本题的正确答案是 C. (m - 1) / (k - 1)