外部排序
内存有限,不能一次将数据全部导入内存排序,于是有了外部排序。
例如,一个含有2000个记录的文件,每个磁盘可容纳250个记录,则该文件包含8个磁盘块。
1. 先用内部排序方法,每次读一个磁盘块,排完序后写到文件,共需8次读和8次写,生成8个有序文件。
2. 然后作二路归并排序,每次往内存读入两个磁盘块,进行归并,一旦输出缓冲区满了就写到磁盘上,第一轮下来,读写16次,有了4个有序文件;然后进行第二轮,读写16次,2个有序文件;最后再读写16次,1个有序文件,结束。
一共进行了4次外存读写(1次内排,3轮内部归并的读写)
外排总时间=内部排序总时间+外存信息读写时间+内部归并时间
tES=r∗tIS+d∗tIO+S∗