在此网页中:CS302 --- External Sorting
Merge the resulting runs together into successively bigger runs, until the file is sorted.
正如我所引用的,我们如何将结果运行合并在一起???我们没有那么多内存。
最佳答案
假设您有数字 1 - 9
9 7 2 6 3 4 8 5 1
让我们假设一次只有 3 个适合内存。
因此,您将它们分成 3 个 block ,并对每个 block 进行排序,将每个结果存储在一个单独的文件中:
279
346
158
现在您将三个文件中的每一个都作为流打开,并从每个文件中读取第一个值:
2 3 1
输出最小值 1
,并从该流中获取下一个值,现在您有:
2 3 5
输出下一个最小值 2
,然后继续,直到输出整个排序列表。
关于algorithm - 外部分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5100252/