0

也许我有点不清楚:

我想做的是尽可能快地对许多向量进行排序。例如,我有 200 个向量和 200 个双倍向量。

4

2 回答 2

0

Using a Radix sort can speedup your sorts.

There is a parallel implementation of the Radix sort algorithm in the Nvidia cuda/openCL SDK.

于 2013-09-27T09:05:03.877 回答
0

由于您尚未发布代码,我假设您正在寻找更好的代码优化以节省内存和时间。尝试在循环中使用标志。

for(i=1;x;i++)
{
    sort();
    if(flag)
       break;
}

“break”确保您在对数据进行排序后不会迭代不必要的代码,该标志告诉编译器在迭代完成时退出循环语句。在嵌套循环中使用标志更为重要,因为空间复杂度超过 O(n.square) 并且它调用了更高的效率。

这在大量迭代和内存空间中节省了大量时间。尽可能尝试优化你的代码,从长远来看会有很大的不同。

于 2013-09-27T08:59:54.767 回答