【发布时间】:2016-09-04 20:17:09
【问题描述】:
如何对大型数据集实际使用归并排序?
假设我有几个带有以下数据的排序文件:
1.txt
1
2
2
2.txt
3
4
5
3.txt
1
1
1
假设我们不能同时将所有文件的内容保存在内存中(假设我们只能保存每个文件中的两个数字)。
我听说在这种情况下我可以使用某种 R-way 合并排序,但我不明白我该怎么做。
如您所见,第一次迭代将为我们提供以下排序序列:
1 1 1 2 3 4
,所以我们将它刷新到输出文件。但是,我们将在下一次迭代中再次获得1(来自3.txt 文件),因此整个结果序列是错误的!
【问题讨论】:
-
只要您(可能)从其中一个文件中得到 1,就不要移动到 2?
标签: algorithm sorting mergesort external-sorting