如何对非常大的文件进行排序

凯瑟(Kayser):

我有一些文件应该在每一行的开头根据ID进行排序。文件约为2-3 GB。

我试图将所有数据读入ArrayList并对其进行排序。但是内存不足以保留所有内容。这是行不通的。

线条看起来像

0052304 0000004000000000000000000000000000000041 John Teddy 000023
0022024 0000004000000000000000000000000000000041 George Clan 00013

如何对文件排序?

pcalcao:

那不是Java问题。您需要研究一种有效的算法来对未完全读入内存的数据进行排序。可以对Merge-Sort进行一些修改以实现此目的。

看一下这个:http : //en.wikipedia.org/wiki/Merge_sort

和:http : //en.wikipedia.org/wiki/External_sorting

基本上,这里的想法是将文件分成较小的部分,(使用合并排序或另一种方法)对它们进行排序,然后使用来自合并排序的合并来创建新的排序文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章