来源:公众号【编程珠玑】
作者:守望先生
ID:shouwangxiansheng
在《系统编程-多线程》中已经了解了多线程的一些特点,其中包括快!那么今天就来看看如何利用多线程来排序。
思路
我们的思路是这样的:
-
假设有N个线程,则将数组数M据分为N组
-
每个线程对其中的一组数据使用库函数提供的快速排序算法
-
所有线程排序完成后,将每组排序好的数组合并
举个例子,使用4个线程对11个数据进行排序:
12,10,4,7,9,6,8,1,5,16,11
由于4不能被10整除,因此,前面三个线程,每个负责排序10%(4-1)= 3三个数,最后一个线程负责排序最后两个数。
假设这4个线程都完成了自己的工作后,内容如下: