4

タイトルが示すように、基数ソートは唯一の非比較ソートアルゴリズムですか? 私の推測ではイエスです。

4

2 に答える 2

6

いいえ - とりわけ、カウントソートとバケットソートもあります。詳細については、ウィキペディアの記事を確認してください。

于 2011-05-12T20:26:56.820 に答える
1

比較を使用しないことで、任意のセットをソートできます。

プロセスは

  • 管理可能な配列に記録するために処理できる入力ドメイン M の管理可能なサイズを決定します。文字 (8 ビット) の場合、ドメインは 0 ~ 255 になります。
  • 入力を規則正しい方法で配列に分割します。
  • 入力がまだ完全に考慮されていない場合、つまり M のすべてのビットが考慮されていない場合は、繰り返してすすぎます。

たとえば、32 ビット、M、整数の並べ替えは次のように実行できます。

  • 最初の 8 ビットを見て、(参照、ポインタ、または言語で使用できるもの) を 8 ビットの範囲に入れます。それらを配列 [0-255] に入れます。これで、値の粗い (球場) 順序付けができました。
  • 次の 8 ビットを見て、それらを同様の配列に入れ、最初の順序への参照を保持します。次の 8x2 ビットも同様に処理されます。抽出するには、最初のセットのリンクをたどります。

基数ソートは数字を使用し、(MSB から LSB) と (LSB から MSB) の 2 つのバリアントがあります。

カウントソートは最初のステップのみを使用します

バケットソートは通常、カウントソートと比較ソートの組み合わせを指す場合に言及されます。

興味深いことに、かなりの数のユースケースで、比較ソートが不足しています。

于 2011-05-12T20:52:43.213 に答える