2013-09-27 43 views
0

也許我有點不清楚:排序多個獨立的雙向載體

我想做什麼我要儘可能快地排序許多載體。 我有例如200個向量200雙。

+0

您是否想對每個向量中的元素進行排序,或者是否想對所有向量進行排序(哪些需要額外的類別作爲數字向量沒有先天順序)? –

回答

0

由於您還沒有發佈您的代碼,我假設您正在尋找更好的代碼優化來節省內存和時間。嘗試在循環中使用標誌。

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

的「破發」可以確保您不會在不必要的代碼重複你整理你的數據後,該標誌告訴編譯器時的迭代comlete退出循環語句。在嵌套循環中使用標誌更加重要,因爲空間複雜度超過了O(n.square),並且它提高了效率。

這節省了大量的迭代次數和內存空間。儘可能優化您的代碼,從長遠來看有很大的不同。

+0

我沒有任何標誌。我永遠不會分手。我想排序多個矢量,我平行快速 – Johan

+0

嘗試進行基數排序,否則,如果您使用單個循環,快速排序就足夠了。 – Legolas

0

使用基數排序可以加快你的排序。

在Nvidia cuda/openCL SDK中有一個基數排序算法的並行實現。

+0

也許我有點不清楚,我想分類許多載體。不只是一個大。 – Johan