基数ソートは、数字の桁を比較することで機能することを知っています。私の質問は、異なる桁数の異なる数字があると仮定します。基数ソートはここで機能しますか? たとえば、3 桁の数字と 6 桁の数字の 2 つの数字を比較する場合、小さい方の数字の最初の 3 桁が 0 であると簡単に想定できます。しかし、実装はどうでしょうか。十分な数字がない場合、それらの数字はゼロであるとプログラムに想定させるにはどうすればよいでしょうか?
ありがとうございました。
基数ソートは、数字の桁を比較することで機能することを知っています。私の質問は、異なる桁数の異なる数字があると仮定します。基数ソートはここで機能しますか? たとえば、3 桁の数字と 6 桁の数字の 2 つの数字を比較する場合、小さい方の数字の最初の 3 桁が 0 であると簡単に想定できます。しかし、実装はどうでしょうか。十分な数字がない場合、それらの数字はゼロであるとプログラムに想定させるにはどうすればよいでしょうか?
ありがとうございました。
どういうわけか、それらの存在しない数字を追加またはシミュレートするか、グループ内の数字を並べ替える必要があります。各グループには、同じ長さの数字のみが含まれています。
これらの3つの数字
9912
999
123
に変換することができます
9912
0999
0123
通常の基数ソートを使用してソートするか、2つの独立したグループとしてソートできます。
9912
と
999
123
後者はあなたに与えます(昇順を想定)
123
999
前者は同じままです。次に、並べ替えられたグループを(短い番号から長い番号に)結合します。
123
999
9912
それで全部です。