给定10个文件,每个文件按排序顺序排列100万个整数,物理内存大小为300万。 请建议有效提取100万整数的方法。
答案 0 :(得分:0)
如果您想深入了解细节,可以从 Knuth Sorting and Searching获得精美的书籍图标。它是本主题中的畅销书,并且提供了对算法的理解,这些算法甚至在今天都在使用。
在StackOverflow上,在how does the MapReduce algorithm work上进行了非常好的讨论。
或者programmers.stackexchange.com关于资源有限的排序算法的讨论。
答案 1 :(得分:0)
使用10路合并。结果需要100万个整数的空间,因此剩余的200万个整数空间被分成10个部分,因此10个输入文件中每个文件的缓冲区大小为200,000个整数。