
外部排序
1. 外存、内存之间的数据结构
特点:外存大,存储数据多;内存小,存储数据少。 规定:外存的数据只有读到内存之后才能进行修改,修改之后还要写回到外存(可以写回原来不同的位置)。

2. 外部排序原理
简单来说,因为外存数据又多又杂,就要一点一点读入到内存中排序,然后再写回外存。 逻辑:外存–>读出数据–>内存–>在内存有序排列数据(比如一个块三个数据 632 排成 236)–>写回外存。

2.1 构造初始归并段
因为内存腾出了两个存放数据块的位置(输入缓冲区)和写出数据的位置(输出缓冲区),2–>1,二合一就是二路归并。
从外存读入两个数据块放入内存的输入缓冲区内,然后就可以对这两个数据块进行归并排序了。

得到两个有序数列。

将这两个有序数列写回外存,这样就构成了一个有序的归并段。

经过 16 次读和 16 次写,外存就变成了左边的 8 个归并段。





























































