- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
159 :デフォルトの名無しさん[sage]:2015/08/13(木) 08:21:16.88 ID:Iax2S8IU - >>157
実用的なクイックソートはループ。 まさか再帰でしか実現できないなんて考えとるんか?
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
161 :デフォルトの名無しさん[sage]:2015/08/13(木) 09:30:01.18 ID:Iax2S8IU - ループ方式も可読性は高い。
特別なことはやらないから、誰でもすぐ実現できるはず。 Cどころか昔のVBのようなへぼ環境でも 何百万ものデータを高速にソートできてしまう。
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
168 :デフォルトの名無しさん[sage]:2015/08/13(木) 10:30:37.05 ID:Iax2S8IU - 可読性が悪いかどうかじゃなく、
再帰の場合よりも良くなくてはいけないと? 理解困難なコードでなく実用性があるのなら採用するでしょ。 プログラマはソート処理のコードは使いまわして 比較関数を用意すればいいだけだし。
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
175 :デフォルトの名無しさん[sage]:2015/08/13(木) 10:47:32.08 ID:Iax2S8IU - >このソース要素数が一定以上の場合、どうやらquicksortしない仕様で、
何言っとるんだ?
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
183 :デフォルトの名無しさん[sage]:2015/08/13(木) 11:01:18.21 ID:Iax2S8IU - >stack_node stack[STACK_SIZE]が溢れますね。
これは指定の番号のデータが、ソート結果として 第何番目になるかを出力させるといい。 つまり順番に数値を格納した配列を用意して その要素をクイックソートの置き換え処理の対象にさせる。 また、比較関数もこれに対応したものを用意する。 この方式なら int stack[STACK_SIZE] を用意すればいいので、件数は多くても メモリ消費量はそんなに必要にならない。
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
228 :デフォルトの名無しさん[sage]:2015/08/13(木) 16:00:20.34 ID:Iax2S8IU - 仮想関数は自己満足じゃないぞ。
実用的なプログラミング手法
|