前边几篇文章,整理过各种各样的排序,但是那些排序都是只能在内存中进行排序,而如果给大量的数据(内存中无法容纳),要给这些数据进行排序,我们就需要借助于一种外排序----归并排序(之后的文章详细介绍)。
对于大数据的排序,我们只能讲数据存储在磁盘上,然后将存储数据的文件进行分割,将小文件中的数据拿到内存中去借助快排进行排序,最后将小文件合并为一个大文件。在这中间,小文件比较多,我将小文件名存储在一个队列中,当队列的大小为1时,合并完毕。
代码中遇到的问题:1.文件名称一样,导致文件的覆盖,程序死循环。
2.在文件合并时,每次从两个文件中分别读到一个数据,只将小的写进 合并文件,当有一个文件已经读取完,另一个文件还没有读完时,我们就应该 将上次读到的数据(还没有写进合并文件)写到文件,再进行读取。
代码缺陷:文件名很糟糕。