考虑以下代码:
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[]
来获得正确的排序。
我想知道的是,还有另一种方法可以解决这个问题吗?经历一百万个阵列的地方很多,并且大大减慢了我的计划。