Java程式設計 遞迴的使用

2021-08-04 06:30:29 字數 724 閱讀 7240

今天來說一下遞迴,什麼是遞迴?

其實說白了遞迴就是乙個方法自己呼叫自己,這就是遞迴,那麼遞迴怎麼使用的,他又有什麼優點呢?

遞迴可以說沒有什麼優點,要說有把勉強算有乙個吧,**簡潔,其他的我還真沒想出來遞迴有什麼優點,但是遞迴的缺點到是不少,執行速度慢,佔記憶體,可以說是效率低下,但是為什麼還要用遞迴的,其實有時遞迴還是有些用處的。

遞迴乙個不斷迴圈調自方式,遞迴可以做的事,迴圈都可以做,遞迴不可以做的事,迴圈也能做。

下面給出乙個遞迴學習的經典案例,使用遞迴計算階乘。

**如下:

public class test else

} public static void main(string args)

}

我們來分析一下原理:

首先我們通過了main方法傳入了乙個值5,5到方法裡面就是n。這是第一次呼叫,然後5!=n我們走到了else裡執行了n*recursion(n-1);在此我們又進行了一次呼叫,這是第二次,因為減1,所以n=4,4!=1繼續呼叫n*recursion(n-1);這又是一次呼叫,以此類推當n==1時返回1,因為需要返回值,所以前面的方法還在等著,這時返回1,那麼上一次呼叫就是2*1,然後把2*1的值有返回,變成3*2繼續返回4*6,在繼續返回5*24,所以最終的結果是120

看圖:

Java語言程式設計 高階篇(一)遞迴

1.直接遞迴,計算n的階乘 package practice public class myfactorial public static int factorial int n 2.輔助遞迴,對陣列進行選擇排列。package practice public class recursivesort...

JAVA 中的遞迴

所謂遞迴,是指程式呼叫自身,當然,遞迴不會無休止地呼叫下去,它必然有乙個出口,當滿足條件時程式也就結束了,不然的話,那就是死迴圈了。看下面這個類,有幾個遞迴方法,看了之後肯定會對你學習遞迴很有幫助的。遞迴類recursion的定義 public class recursionelse 遞迴方法sum...

java中的遞迴

所謂遞迴,是指程式呼叫自身,當然,遞迴不會無休止地呼叫下去,它必然有乙個出口,當滿足條件時程式也就結束了,不然的話,那就是死迴圈了。看下面這個類,有幾個遞迴方法,看了之後肯定會對你學習遞迴很有幫助的。遞迴類recursion的定義 public class recursionelse 遞迴方法sum...