「インプレース」MSD基数ソートアルゴリズムを本当に混乱させています:
各ビンは、すべての桁が並べ替えに使用されるまで、次の桁を使用して再帰的に処理されます。
再帰は O(n) スタック スペースを意味するように思われるため、混乱しています。ここで、nは最長の文字列の長さ (ビット数) ですよね?
スタック オーバーフローを回避する唯一の方法はヒープ スペースを使用することのように思えますが、その場合、アルゴリズムは定義上、もはや「インプレース」ではありません。
では、インプレース MSD 基数ソートをインプレースで実行するにはどうすればよいでしょうか?