再帰注1:アプリケーションシナリオと呼び出しメカニズム

1、再帰の概念:

呼び出し自体を再帰的にそれ、各呼び出し、別の変数を渡すことができ、コードが簡単になりながら、再帰的なヘルプは複雑な問題を解決

2、再帰呼び出しメカニズム

印刷の問題

com.ethjavaパッケージ; 

パブリッククラスdiguidayin { 
    パブリック静的無効メイン(文字列[] args){ 
        テスト(4); 
    } 
    パブリック静的ボイド試験(N-INT){ 
        IF(N> 2){ 
            試験(1-N-); 
        } 
        ;:のSystem.out.println(N +を"N-印刷")
    } 
} 
2:// N-印刷
3 :. // N-プリント
プリント// N:4

再帰呼び出し規則:

スタック:プログラムは、メソッドを実行すると1)、それは別のスペースを開きます。

2)各スペース(ローカル変数)のデータが独立しており、お互いに影響を与えません。

次のように2)です。

 

この問題を解決するために再帰:

1.アルゴリズム:マージソート、クイックソート、バイナリ検索

2、数学の問題:ハノイの問題、階乗問題、8女王の塔

スタックの問題を解決する3、:再帰的解決は非常に簡単になります。

 

の原則を遵守する再帰的必要性:

1)メソッドの実装は、それが新しい保護された独立したスペースを作成します。

2)各プロセス(ローカル変数)のためのデータが独立しており、お互いに影響を与えません。

変数は、方法で使用されるそのようなアレイとして参照型()である場合3)、参照がヒープに格納されたデータのタイプによって共有されます。

4)递归必须向退出递归的条件逼近,否则就是无线递归,出现StackOverflowError,

5) 当一个方法执行完毕后,或者遇到return,就会返回到调用的位置,继续往下执行。

遵守规则:谁调用,就将结果返回给谁,同时当方法执行完毕或者返回时,该方法也就执行完毕。

 

发布了45 篇原创文章 · 获赞 8 · 访问量 5856

おすすめ

転載: blog.csdn.net/wenyunick/article/details/103562883