A.
首先划分子集合,每个子集合最大可为 块,可以划分为 / 个子集合。这样划分的理由:一是子集合可以全部装载入内存执行内排序,二是最大限度地利用内存产生尽可能少数目的子集合
B.
将 块内存留出两块,一块作为输出数据块,一块用于待比较元素数据块。其余 -2块用于装载尽可能多数目的子集合,即尽可能采用更多路的归并。这样做的理由:尽可能最大限度地利用内存,以便减少归并的次数
C.
如果子集合参与归并一次被称为一个轮次,则整个数据集的轮次是指该数据集中参与归并次数最多的子集合的轮次。归并算法应考虑以尽可能少轮次的归并为目标来衡量各种不同归并策略的好坏。也可以定义一个参数“子集合轮次累积和”,即所有子集合参与归并轮次的总和,来衡量性能好坏,即“子集合轮次累积和”越小,算法性能越好
D.
假设 =6, =60,则按照上述(A)(B)(C)思想,可自动确定出:子集合数目=10,第一次将10个子集合分成3组(3个、3个和4个)并分别采用3路归并和4路归并将其归并成3个子集合;第二次对这3个集合再采用3路归并完成最终的排序。这样做的算法是最优的