[プロ技] 再帰的アルゴリズム

woody_1227 オーナー 公式アカウント


ログインすると、チェック機能を利用できるようになります。
再帰(recursion, recursive call)とは


main()
{
printf("Hello\n");
main(); //再帰呼び出し
return(0);
}


永久ループのように動作するがしばらくすると
…戻り番地をスタックに保存しmain()を読み出すが、復帰せず繰り返されるので、

再帰呼び出しが正常に機能するには、一定の条件( )が成立したら、復帰するようにする

再帰的アルゴリズムの特徴

 問題によっては非常に簡潔明快
 → をしている

 関数読み出しに伴う が大きい
 …戻り番地、引数、ローカル変数などをスタック上に取る
  →メモリを大量に消費

要するに、 プログラムを書ける

例:木の枝分かれなど

再帰的アルゴリズム作成のポイント
・現在の問題(自分)を解くのに、ひとまわり小さな問題(自分)にどんな操作をしたらよいか考える
・これ以上小さな問題にならない条件を見つける( )
 …自明な解は何か、最小の解は何かなど
※自明…言うまでもなく明らかなこと。