|
回答者の皆さま。 色々と興味深い回答ありがとうございます。
例えば
X のn乗 n!
の計算なら普通はループで組むでしょう。 再帰で組む人は少ないと思います。 私もどちらでも組めます。
しかしクイックソートはループでの組み方が 全く見当がつきませんでした。 しかし関数としてライブラリー化 されているようなものが、スタックオーバーの 危険を含む再帰で組まれている筈がないと考え 今回の質問をさせて頂きました。
επιστημηさんが纏められているように スタックの確保領域をヒープに置くことが大事ですね。
R・田中一郎さんの回答もスタックなコレクションを ヒープに置くとのことですが、私はスタックという言葉に惑わされて 勘違いしスタックに置くと考えた為暫く????状態でした。 (今はきちんと理解しています。)
あんどちん さんにエスパー能力を発揮して頂き .SHO さんから質問にほぼ近い内容のコードを 書いていただきました。 私が欲しかったのはまさにこれです。これで 再帰からループに変換する考え方(コツ?)をつかみ これを参考にしてJittaさんのコードを理解する所存です。
出水さん、dogatanaさん、れいさん、興味あるお話 ありがとうございます。
計算量の話が続いているので、聞きたい気がしますが 私が解決ずみにしないといけないきまりみたいなので 一応解決済みとします。
みなさん 有難うございました。
|