【发布时间】:2011-01-18 10:20:50
【问题描述】:
为 N 个排序的文件实现 N 路合并的最佳方法是什么?
假设我有 9 个已排序的文件,每个文件有 10 条记录?如何合并这些文件以创建一个包含 90 条已排序记录的大文件?
【问题讨论】:
-
是否有重复记录?
-
是什么阻止您进行内存排序和写入文件?换句话说,你的限制是什么?
-
我很想说,加载或简单地附加所有 9 个文件并重新排序。考虑到文件访问的开销,我想不出有什么好的理由在合并时尝试交错数据文件。如果您要处理的总记录负载大于可用内存,那么 live 会更复杂。
-
有或没有重复。无法在内存中,因为该文件超过 2 GB。