题6
题目
Q:在做
①
A. 2
B.
C.
D.
②
A. 2
B.
C.
D.
分析
A:主题题目里面的并行处理这个描述和要求
“平衡归并” 中的 “平衡” 主要体现在两个方面:
- 归并路数的平衡:
在外部排序中,我们通常使用多路归并来提高效率。 “k 路归并” 指的是每次合并 k 个有序段。 “平衡” 意味着我们尽量保持每次归并的路数k相同, 这样可以保证归并树的形态相对平衡,从而减少总的归并趟数。 - 归并段大小的平衡:
理想情况下,我们希望每次参与归并的各个段大小尽可能相近。 这是因为,如果某些段很大,而另一些段很小, 那么就会导致归并操作的不平衡, 大段会参与更多次的比较,影响效率。
为了实现归并段大小的平衡,通常会用到一些技巧,例如:
- 置换-选择排序: 用于生成初始归并段时,可以尽量使各个段的长度均衡。
- 添加虚段: 如果初始归并段的数量不能构成严格的 k 叉树,可以添加一些长度为 0 的 “虚段” 来使其平衡。
总的来说,“平衡归并” 中的 “平衡” 是指尽力保持归并过程的均衡,无论是归并路数还是归并段大小, 其最终目标都是为了减少外存读/写次数,提高外部排序的效率。
解
D、A
相比普通的
需增加
综上,需设置 2 个输出缓冲区,