1

整数値のリストを並べ替えたいのですが、並べ替える前に、それらを数値Nに分割する必要があります。したがって、いくつかの重複キーがあり、この重複をリストのstable_sortに使用します。

私の質問は、すべての値を分割し、分割された値をリストに格納してから並べ替えを実行するか、transform_iteratorを使用する方が良いということです。transform_iteratorを使用すると、ソートアルゴリズムがradix_sortからmerge_sortに変更されます。これは、時間差が大きいためです。

例えば:

//already sorted according to another parameter
thrust::device_vector<int> myvalues...

//we want to group them..
thrust::transform(myvalues.begin(), myvalues.end(), groups.begin(), divide_by_n(N));
thrust::stable_sort_by_key(groups.begin(), groups.end(), myvalues.begin();

また

first = thrust::make_transform_iterator(myvalues.begin(), divide_by_n(N));
last  = thrust::make_transform_iterator(myvalues.end(),   divide_by_n(N));
thrust::stable_sort_by_key(first, last, myvalues.begin());

ありがとう

4

1 に答える 1

2

この投稿 (@JaredHoberock からのコメント) によると、2 つ目は機能しません。 Thrust ライブラリを使用してキーの精度を下げてソートする方法

于 2012-06-21T18:54:41.597 に答える