C++ 对巨大的二进制文件进行排序

0xb*_*00d 5 c++ sorting algorithm

我需要对无法放入内存的巨大二进制文件进行排序。无法使用排序算法并从 I/O 设备连续读/写。有没有可能使用内存映射文件之类的东西?

Jam*_*ack 4

这是一个已解决的问题,正如此 wiki 页面上所解释的: http: //en.wikipedia.org/wiki/External_sorting

基本上,读取一定数量的数据,对其进行排序,保存到文件中,然后重复。然后,从每个文件中读取少量内容,对它们进行排序,然后继续直到完成。

更新

你可能想看看他使用的java代码,听起来他解决了你需要的东西。

http://www.codeodor.com/index.cfm/2007/5/10/Sorting-really-BIG-files/1194