慢并行基数排序

时间:2014-05-06 13:20:16

标签: java arrays multithreading sorting radix-sort

考虑以下代码:

int maxElements = numElements + minElements;
int mask = (1 << maskLen) - 1;

for (int j = 0; j < a.length; j++) {

    if (minElements <= ((a[j] >> shift) & mask) 
        && maxElements > ((a[j] >> shift) & mask))  {

        b[sumCount[(a[j] >> shift) & mask]++] = a[j];
    }
}

这是带有线程的2位radixSorting的最后一部分,我们有一个赋值。

排序工作完美,然而,这很慢。我应该具有&gt;的加速(顺序时间/并行时间)。 1,但我很难得到0.5。

我明白为什么,目前我被迫通过整个a[]来获得正确的排序。

我想知道的是,还有另一种方法可以解决这个问题吗?经历一百万个阵列的地方很多,并且大大减慢了我的计划。

0 个答案:

没有答案