对于大文件的排序,常规思路便是:将大文件问个成 n 个小文件,分别对这些小文件利用内部排序(快速排序、堆排序等)算法排成有序。然后再对这些文件进行两两归并,直至归并成一个大的有序文件。 这样归并的趟数比较多,读写文件的 I/O 次数就比较多。相对于内存中的运算,对文件的读写操作是特别费时间的。显然一次性归并多个文件而不是两个会大大减少归并的趟数,从而减少对文件的读写操作。 如何一次性归并多个文件?败者树。