Skip to content

2026年 408 数据结构 第 11 题

数据结构2026年选择题2分

题目

在外部排序的 路归并过程中,归并趟数为 。下列关于 、初始归并段及内存大小的说法中,正确的是()。

Ⅰ. 越大, 越小

Ⅱ. 初始归并段数不影响

Ⅲ. 内存大小限制初始归并段的最大长度

错因

A

只承认 I 对,没意识到 III 也对。可能忽略了"初始归并段是怎么生成的"这一前置环节——它由内存排序得到,每个段的长度上限就是内存能容纳的记录数。看到 III 里的"内存大小"就觉得跟趟数无关,没理顺这条因果链。

B

把 II"初始归并段数不影响 d"当成对的。错误来源:只盯着 看,把 d 当成"只跟路数有关"的量。但归并趟数公式 是初始段数)里 m 是真量参数——m 越多 d 越大。

D

漏掉了 I、又错把 II 当对。这是对外排序公式整体记得最模糊的一种状态:不知道 k 和 d 的关系(也许把 k 当成段数?),又把 m 不影响 d 当成既定结论。

总解析

外排序两阶段

  1. 生成初始归并段:每次把内存能装下的一批记录读进来,内排序后写回外存,得到一个有序段。重复直到所有记录处理完,共得到 个初始段;
  2. k 路归并:每趟把 k 个段合并成 1 个,反复进行直到只剩 1 个段。趟数

逐项核对

  • Ⅰ. 越大, 越小,对数底数 增大 → 对数值减小(m 固定时),所以 d 单调减少。

  • Ⅱ. 初始归并段数不影响 ✗ 公式里 直接进入 越大, 越大 → d 越大。比如

  • Ⅲ. 内存大小限制初始归并段的最大长度 ✓ 生成初始段时,一次只能把内存能容纳的记录放进来排序,所以每个初始段的长度上限 = 内存容纳记录数。内存越大,初始段越长,需要的初始段数 也越少(间接也让 d 变小)。

正确的说法是 I 和 III

最终答案是 C

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数