PSRS算法(Parallel Sorting by Regular Sampling):首先设待处理里序列长n,并行机上有p个处理器。为了使问题简单,我们假设n是p的整倍数。于是将这n个元素划分为p段,每段中有n/p个元素,将这p段分给p个处理器。注意,执行PSRS算法的并行机必须是多指令流多数据流(MIMD)的。
如果注意到一个好的串行排序算法的时间复杂度为那么,容易证得上述PSRS算法的时间复杂度在时为。
缺点:我们注意到,在第五步进行主元划分时时可能会引起不均匀性,即位于某两个主元之间的元素可能要多一些(多于个)。我们可以证明,在算法中进行到第六步全局交换时,可能会有某一个处理器中数据达到个;这样引起的直接后果是处理器负载不均匀,那么在归并排序中可能会引起排序时间的不均匀。
并行计算并行排序