先日、Javaで基数ソートの実装を作成することにしました。基数ソートは O(k*N) であるはずですが、各桁を 1 つの数値に分解するプロセスのために、最終的に O(k^2*N) になりました。前の数字を修正 (%) し、10 で割って後続の数字を削除することで、各数字を分解しました。これを行うためのより効率的な方法があるかどうか教授に尋ねると、彼はビット演算子を使用すると言いました。さて、私の質問は次のとおりです。Javaで各数値を分解するのに最も速い方法はどれですか。1)上記の方法。2) 数値を文字列に変換し、部分文字列を使用します。3) ビット操作を使用します。
3)の場合、それはどのように機能しますか?