为了讲解方便,这里假设内存只能存放3个整数,文件里有12个整数
1.先读取3个整数到内存中,构建小顶堆,将最小值写入文件中,然后从剩余的9个整数中读取一个放到内存中,如果这个数比刚写入到文件中的数大,则把这个数插入到小顶堆中,重新调整小顶堆结构,将最小值写入文件中,否则把这个数暂放在一边不处理。
这样可以保证文件中的整数是排好序的。
2.对新生成的文件采用多路归并排序。
为了讲解方便,这里假设内存只能存放3个整数,文件里有12个整数
1.先读取3个整数到内存中,构建小顶堆,将最小值写入文件中,然后从剩余的9个整数中读取一个放到内存中,如果这个数比刚写入到文件中的数大,则把这个数插入到小顶堆中,重新调整小顶堆结构,将最小值写入文件中,否则把这个数暂放在一边不处理。
这样可以保证文件中的整数是排好序的。
2.对新生成的文件采用多路归并排序。