Java技術分享:什麼是遞迴?怎麼用呢?

千鋒武漢發表於2021-04-23

  程式呼叫自身的程式設計技巧稱為遞迴( recursion)。遞迴做為一種演算法在程式設計語言中廣泛應用。但是如果沒終止條件會造成死迴圈,所以遞迴程式碼裡要有結束自調自的條件。接下來透過一個案例來學習如何使用遞迴演算法計算自然數之和,如例Example1.java。

jj

  public class Example1 {

  public static void main(String[] args) {

  int sum=getsum(4); //呼叫遞迴方法,獲得1~4的和

  System.out.println("sum="+sum); //列印結果

  }

  //下面的方法使用遞迴實現求1~n的和

  public static int getsum(int n) {

  if(n==1){

  //滿足條件,遞迴結束

  return 1;

  }

  int temp=getSum(n-1);

  return temp+n;

  }

  }

  執行結果為:

  sun = 10

  Example1.java中,定義了一個 getSum()方法用於計算1~n之間自然數之和。例程中的12行程式碼相當於在 getSum()方法的內部呼叫了自身,這就是方法的遞迴,整個遞迴過在n==1時結束。整個遞迴過程中 getsum()方法被呼叫了4次,每次呼叫時,n的值都會遞減。當n的值為1時,所有遞迴呼叫的方法都會以相反的順序相繼結束,所有的返回值會進行累加,最終得到結果10。

  使用遞迴時需要注意的問題:

  【1】遞迴就是方法裡呼叫自身。

  【2】在使用遞迴策略時,必須有一個明確的遞迴結束條件,稱為遞迴出口。

  【3】遞迴演算法程式碼顯得很簡潔,但遞迴演算法解題的執行效率較低。所以不提倡用遞迴設計程式。

  【4】在遞迴呼叫的過程中系統為每一層的返回點、區域性量等開闢了棧來儲存。遞迴次數過多容易造成棧溢位等,所以一般不提倡用遞迴演算法設計程式。

  【5】在做遞迴演算法的時候,一定把握出口,也就是做遞迴演算法必須要有一個明確的遞迴結束條件。這一點是非常重要的。其實這個出口就是一個條件,當滿足了這個條件的時候我們就不再遞迴了。

  如果大家正在學習java知識或者是對java知識比較感興趣的話,可以關注我,後期分享更多Java知識!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2769459/,如需轉載,請註明出處,否則將追究法律責任。

相關文章