设初始待排文件为 FI, 初始归并段输出文件为FO, 内存工作区为 WA,FO 和 WA 的初始状
态 为 空 ,WA 可 容 纳w 个记录。置换-选择算法的步骤如下:
1 ) 从FI 输 入w 个记录到工作区WA。
2 ) 从 WA 中选出其中关键字取最小值的记录,记为MINIMAX 记录。
3 ) 将 MINIMAX 记录输出到FO 中去。
4 ) 若 FI 不空,则从FI 输入下 一个记录到WA 中。
5 ) 从 WA 中所有关键字比 MINIMAX 记录的关键字大的记录中选出最小关键字记录,作为 新的 MINIMAX 记录。
6 ) 重 复 3 ) ~ 5 ) , 直 至 在 WA 中选不出新的 MINIMAX 记录为止,由此得到一个初始归并 段,输出一个归并段的结束标志到 FO 中去。
7 ) 重 复 2 ) ~ 6 ) , 直 至 WA 为空。由此得到全部初始归并段。
设待排文件 FI={17,21,05,44,10,12,56,32,29},WA容量为3,排序过程如表8 . 2所示。
上述算法,在 WA 中选择 MINIMAX 记录的过程需利用败者树来实现