遞歸的概念與用法

●遞歸的概念

1、遞歸就是方法自己調用自己,每次調用時傳入不同的變量。

2、遞歸有助於編程者解決複雜的問題,同時可以讓代碼變得簡潔。

●遞歸的調用規則

1、當程序執行到一個方法時,就會開闢一個獨立的空間(棧)。

2、每個空間的數據(局部變量)是獨立的。

示例:

public static void main(String args[]){
         test(4);
 }
public static void test(int n){
         if(n>2){
             test(n-1);
          }
      System.out.println("n="+n)

過程分析圖:
在這裏插入圖片描述
運行結果:
n=2
n=3
n=4

●遞歸解決的問題

1、數學問題:8皇后、漢諾塔、階乘、迷宮問題等;

2、快排、歸併排序、二分查找、分治算法;

3、可以將棧的相關問題轉化爲遞歸問題,更簡單方便。

●遞歸需要遵守的重要規則

1、執行一個方法時,就創建一個新的受保護的獨立空間(棧空間)。

2、方法的局部變量是獨立的,壞會相互影響,比如上面示例中的n變量。

3、如果方法中使用的是引用類型變量(比如數組),就會共享該引用類型的數據。

4、遞歸必須向退出遞歸的條件逼近,否則就是無限遞歸,會出現StackOverflowError。

5)、當一個方法執行完畢,或者遇到return, 就會返回,遵守誰調用,就將結果返回給誰,同時當方法執行完畢或者返回時,該方法也就執行完畢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章