外部排序分为两个独立的阶段。首先,将含有n个记录的文件分为若干长度为l的子文件(归并段),依次读入内存并用内部排序方法进行排序,将排序后的子文件重新写入外存。然后对这些归并段进行逐趟归并。
提高外排的效率应主要着眼于外存信息的读写次数,而这与归并的趟数成正比。对m个初始归并段进行k路平衡归并时,m越小或k越大,便能减少趟数。
当k越大,归并时,需要的比较次数就越多,可以利用败者树减少比较次数。
为了减小m,可以用置换选择排序。由置换选择生成所得的初始归并段,各段长度不等。可以构造一棵哈夫曼树作为归并树,使外部归并时所需的读写次数最少。