2011-12-27 96 views
0

我正在尋找推力/ cudapp中第k個最小元素算法的實現。我谷歌搜索,但似乎沒有找到它。有沒有人知道是否存在這樣的算法?算法在推力/ cudpp中找到第k個最小元素

我看到有重新排序,但沒有說第k個最小。

+1

@MFFooz,sheesh,Quickselect平均爲O(N)。 – ArchaeaSoftware 2011-12-29 02:22:56

+0

查看[這個答案](http://stackoverflow.com/questions/8660978/how-long-does-thrust-take-to-sort-1-million-floats)到你的其他問題。 – harrism 2012-01-05 06:37:29

回答

1

目前推力並未提供選擇算法(即STL中的std::nth_element),儘管它在我們的雷達上,並且有good evidence可以在GPU上快速完成選擇。您現在唯一的辦法是使用thrust::sortthrust::sort_by_key(或其stable_變體)對數據進行排序,然後選擇適當的元素。排序基本類型(例如intfloatchardouble)的推力與非常快的基數排序的代碼實現的,所以絕對錶現還是會比較好,雖然效率不高的specialized selection method