外部排序基本概念
在许多实际应用中,经常需要对大文件进行排序,因为文件中的记录很多、信息量庞大,无法将整个文件复制进内存中进行排序。因此,需要将待排序的记录存储在外存上,排序时再把数据一部分 一部分地调入内存进行排序。在排序过程中需要多次进行内存和外存之间的交换,对外存文件中的记录进行排序后的结果仍然被放到原有文件中。这种排序方法就称为外部排序。
外存、内存之间的数据交换
在实际应用中,由于外存设备的不同,通常又可分为磁盘文件排序和磁带文件排序两大类。磁带文件排序和磁盘文件排序的基本步骤类似,主要不同之处是初始归并段在外存介质中的分布方式,磁盘是直接存取设备,磁带是顺序存取设备。
文件通常是按块存储在磁盘上的,操作系统也是按块对磁盘上的信息进行读写的。因为磁盘读/写的机械动作所需的时间远远超过内存运算的时间(相比而言可以忽略不计),因此在外部排序过程中的时间代价主要考虑访问磁盘的次数,即I/O次数。