問題を解決するときに、ある解決策に従って大きな問題をいくつかの小さな問題に分割すると、これらの小さな問題の解決策が、実は先ほどの大きな問題と同じであることがわかるという状況に遭遇することがあります。解決策はまた同じです!
典型的な例: 階乗を求める!
10! = 10 * 9!
9! = 9 * 8!
8! = 8 * 7!
……
構文的には、
関数の再帰呼び出しとは、関数が実行中に再度それ自体を呼び出すことを意味します!
再帰の 2 つの重要なポイント:
1、再帰終了: 再帰呼び出しをいつ停止するかを指します
2、再帰ポイント: 再帰呼び出しの使用を開始するタイミングを指します
再帰呼び出しを記述するときは、最初に再帰出口を記述し、次に再帰ポイントを記述します。
つまり、再帰呼び出しの特徴は次のとおりです: コードは比較的簡単に記述できますが、実行すると、
より多くのメモリ リソースを消費します !
再帰の本質は空間を時間と交換することであるとも言えます!
以下は、フォルダーを再帰的に走査する小さなケースです:
コード:
リーリー
効果:
次の記事では、再帰的手法を使用して無限分類の小さなケースを実装します。