题13
题目
Q:在由
A.
B.
C.
D. 无法确定
分析
A:
解
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)。