也许我有点不清楚:
我想做的是尽可能快地对许多向量进行排序。例如,我有 200 个向量和 200 个双倍向量。
Using a Radix sort can speedup your sorts.
There is a parallel implementation of the Radix sort algorithm in the Nvidia cuda/openCL SDK.
由于您尚未发布代码,我假设您正在寻找更好的代码优化以节省内存和时间。尝试在循环中使用标志。
for(i=1;x;i++)
{
sort();
if(flag)
break;
}
“break”确保您在对数据进行排序后不会迭代不必要的代码,该标志告诉编译器在迭代完成时退出循环语句。在嵌套循环中使用标志更为重要,因为空间复杂度超过 O(n.square) 并且它调用了更高的效率。
这在大量迭代和内存空间中节省了大量时间。尽可能尝试优化你的代码,从长远来看会有很大的不同。