什么是外排序?
外排序是指当待排序的数据量较大、无法一次性全部存入内存中执行排序
操作时,先将待排序的数据存储在外存储器上,并将其划分为多个数据块,分批次读入内存中执行排序操作的过程,在这一排序过程中需经过多次内、外存储器之间的数据交换
,才可完成排序操作。
外排序的基本方法
外排序通常使用归并排序
,其排序过程大体可划分为3个阶段。
1.文件读入阶段
由于文件较大,我们首先需根据内存的大小,将文件划分为若干个子文件或段,依次读入内存中。
2.子文件排序阶段
读入内存后,我们可利用内排序中的方法对每个子文件(数据)进行排序,排序完毕后,再将其重新写回外存中,由此我们可得到对应的有序子文件。通常将这样的有序子文件称为
归并段
或顺串
。
3.子文件归并阶段
当文件中划分的若干个子文件均有序后,再对其执行多次归并操作,使得有序的归并段不断扩大,直至所有的子文件合并为一个完整的有序文件,存储至外存中。
总结
- 外排序的思想就是归并排序