1

10未満のintデータ型で機能する基数ソートの実装を読みました。つまり、1つの有効数字で構成されています。(例:1、0、3、4、9、...明確にするため)。この実装はそれほど難しくはありませんが、10を超える数はどうでしょうか。配列の要素を文字列またはchar型に明示的に変換せずに、最初のパスで1の位の数字だけを比較し、次に2番目のパスで10の位の数字だけを比較するにはどうすればよいですか。(またはこれは単に必要ですか?)

4

1 に答える 1

1

n番目の桁はいつでもv/(10 **(n-1))%10としてプルできます。

1桁の基数ソートから複数桁の一般的なソーターに移行するのは簡単ではありません。数字を処理する順序に応じて、グループの境界を追跡するか、「安定した」バリアントを使用する必要があります。

于 2012-11-13T20:01:29.163 に答える