Subsections

3 再帰呼び出しを使うためには

3.1 再帰呼び出しの関数の条件

これまでの例で,再帰呼び出しは繰り返し文と似ていることが分かっただろう.繰り返し 文では,無限ループにならないように,必ず終了条件が必要であった.同じように,再帰 呼び出しでも,呼び出しの終了条件が絶対に必要である.そうしないと,無限に関数を呼 び出すことになり,いずれはプログラムがクラッシュするであろう.

もうひとつ重要なことは,再帰呼び出しが出きるようなアルゴリズムを考えなくてはなら ない.一つの考え方は,漸化式を書いてみることである.数学の漸化式のような考え方が 出きれば,それを忠実にプログラムすれば,再帰呼び出しができるであろう.

3.2 再帰呼び出しを使う方がよいか?

結論から先に言うと,再帰呼び出しは出来るだけ使わない方が良い.繰り返し文で可能な らば,再帰呼び出しをわざわざ使う必要はない.なぜならば,再帰呼び出しは関数を 何回もコールするため,速度は遅くなり,さらにメモリーも多く使う.しかし,プログラ ムの記述が簡素になる場合は,再帰呼び出しを使うべきである.ハノイの塔やクイックソー トを再帰呼び出しを使わないで,プログラムを書くとなると,かなり手間がかかるだろう. とても難しく思えたハノイの塔を解くプログラムが,びっくりするほど簡単に書けるのは 再帰呼び出しの威力である.


ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
2006-03-23


no counter