外排序

来源:互联网 发布:美国大学宿舍 网络 编辑:程序博客网 时间:2024/05/17 08:07
在学校学过的都是内排序,也就是内存可以直接装下数据,在内存 中对数据直接进行排序。而当数据很大的时候,这时内存不能一次性装下所有数据,就必须对数据进行分割,根据内存大小将数据分割成L 份,每次将部分数据装入内存,在内存中可以用内排序将数据排序,然后写入到临时文件中,总共形成L 个文件。然后对这L 份文件进行归并排序。有同学感到疑惑,如果把两份文件装入内存进行归并不是内存溢出了吗。。。。。对。。。说明不能将全部两份文件放到内存里。。。因为临时文件是有序的,所以可以每份文件都取一部分放入内存中进行多路归并,当这一部分的数据都写入到最终文件,再从这一部分对应的临时文件中取数据,直到对应的临时文件全部取完。直到所有文件都取完,最终的文件肯定是有序的。
原创粉丝点击