在多线程合并排序中合并线程(c)

时间:2017-02-23 13:54:28

标签: c multithreading merge

所以我目前正在开发一个线程合并排序程序。我知道我的算法是正确的,因为它适用于单个线程。它被设计成我有一个MergeSort()函数,它在左侧和右侧递归地减半一个数组,然后我调用一个Merge()函数来进行实际的排序和合并。因此,对于我的多线程合并排序,我根据传入的线程数(在命令行上)将我的数组分区为main,然后将每个线程发送到我的MergeSort()函数。到目前为止,我的程序能够将每个子数组发送到MergeSort并对每个线程中的各个块进行排序。我现在的问题是在所有线程上调用最终合并。我应该在最后对主合并进行线程化吗?或者我可以立即在整个阵列上调用Merge(从0到N-1)?我应该如何考虑解决这个问题?任何指导将不胜感激。

0 个答案:

没有答案