数据结构与算法(25): 排序- 外部排序

  外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序。然后,对已经排序的子文件进行多路归并排序。

  大部分内部排序算法都用到内存可直接寻址的事实。如果输入数据再磁盘上,那么所有这些操作都失去了它们的效率,因为磁带上的元素只能被顺序访问。
  外排序通常采用的是一种“排序-归并”的策略。在排序阶段,先读入能放在内存中的数据量,将其排序输出到一个临时文件,依次进行,将待排序数据组织为多个有序的临时文件。而后在归并阶段将这些个临时文件组合成一个大的有序文件,也即排序结果。

感谢:http://noteton.com/u/%E5%85%94%E7%88%B7%E7%88%B1%E5%90%83%E7%82%B8%E9%85%B1%E9%9D%A2/684/external-sorting