一連の整数値があり、Thrust を使用してそれらを並べ替えたいと考えています。このソートで一部の上位ビット/下位ビットのみを使用する可能性はありますか? 可能であれば、ユーザー定義のコンパレータを使用したくありません。使用されるアルゴリズムが基数ソートからマージソートに変更され、経過時間が大幅に増加するためです。
すべての数値がビットで同じ値を持つ場合、ソート中にビットがスキップされると思うので、可能な限り最小のビット数を使用して、それで十分であることを願っています。(つまり、8 ビットの char を使用し、上位 3 ビットを 0 に設定する 5 ビットの場合)
例:
sort<4, 0>(myvector.begin(), myvector.end())
sort<4, 1>(myvector.begin(), myvector.end())
上位または下位の 4 ビットのみを使用して並べ替えます。