外部多线程排序

时间:2016-08-13 12:40:28

标签: multithreading algorithm sorting

我需要实现外部多线程排序。我没有多线程编程的经验,现在我不确定我的算法是不是很好,我也不知道如何完成它。我的想法是:

  1. 线程从输入文件
  2. 读取下一个数据块
  3. 使用标准算法(std :: sort)
  4. 对其进行排序
  5. 将其写入另一个文件
  6. 在此之后我必须合并这些文件。我该怎么做?

    • 如果我等待直到输入文件将被完全处理,直到合并 我收到了很多临时文件
    • 如果我尝试在排序后直接合并文件,我无法想出 避免合并具有完全不同大小的文件的算法 会导致O(N ^ 2)难度。
  7. 另外我认为这是一个非常常见的任务,但是我无法在enternet中找到准备好的算法。我非常感谢这样的链接,尤其是它的c ++实现。

0 个答案:

没有答案