我正在通过此处描述的常规采样算法实现并行排序。我陷入了需要将已排序的子列表迁移到已排序数组的适当位置的地步。问题可以这样说:有一个全局数组。该数组已被划分为 p 个子数组。这些子数组中的每一个都已排序。p-1 个全局枢轴元素被确定,每个子数组被分成 p 个子子数组(黄色、红色、绿色)。现在我需要移动这些子子数组,以便具有局部索引 i 的子子数组位于线程 i 中(因此它们以颜色相邻且从左到右的顺序保持不变的方式排序)。
实际上串行算法会做,但我只是不知道如何获得适当的排列。下图显示了 p=3 个线程的情况。黄色表示子子数组 0,红色 - 1,绿色 - 2。
子子阵列可以具有不同的大小。