我知道这已经在论坛上被问过几次,我没有找到任何可以被认为是最合适的解决方案的“标记”答案 - 所以再次询问:
我们从书中得到了一个非常大的文本,所有这些都无法放入记忆中。我们需要找到文本中出现频率最高的 10 个单词。做到这一点的最佳(时间和空间)方式是什么?
我的想法:
将文件分成 k 个大小的块(这样每个块都可以存储在内存中)。现在,对每个块执行外部排序。一旦我们在磁盘上有 (N/k)- 排序的文件(假设 N 是书中文本的总大小) - 我不知道应该如何继续,以便我可以从k 排序数组。
另外,如果有不同的思路,请提出建议。