【なぜ再帰は難しいのか】ソートのプログラミングを教えていると、「クイックソート」で苦労する学生が多いようです。再帰という考え方が、階乗やフィボナッチ数列よりも複雑なものになると、少なくとも自分は、とたんに理解に苦労してしまいます。何か「再帰」には、人類の思考法とは本質的に相性が悪いといった、特別な理由があるのでしたら教えてください。有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。・そもそもクイックソートが難しい(分岐条件が理解しづらい)・扱うデータが多いからめんどい(挫折する・一直線な(徐々に狭まっていく)再帰ではないのが原因なのかなーと思います。ついては上述の理由で。【人類の思考法とは本質的に相性が悪い】については、本質的ではないだろうが、キャパを超えやすいという理由があるんだろうと思います。今、適当に検索したら、再帰処理ってループでも書けるという言説を読んだのですが、ループだと終了条件がわかりやすい、ループ毎の変化が直感的に捉えられる、分岐などしない(してもなんとなく理解しやすそう)というメリットがあるのに比べ、再帰だと、その辺りがもやーんとするんだろうなーって思いました。次のループに入る時の状態と、次の再帰に入る時の状態を考えると、ループの方がなんとなく理解しやすいだろう(だからループで書けるならループで書く)。そもそも再帰を利用すべきケースって結構限られているのかも知れないですね。ソースは洗練されたふうに見えますが、可読性はかなり落ちますし。grankoyan2様、ブログ拝読いたしました。