http://算法
今天我想寫一點關於遞歸的思想,就是我我的對遞歸的瞭解。首先從一個故事講起:從前一座山山裏有個和尚在講故事講什麼故事呢?從前有座山山裏有個和尚再講故事........ide
一: 遞歸算法解決問題的特色: 函數
(1) 遞歸就是在過程或函數裏調用自身(自力更生解決問題吧!)。spa
(2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱爲遞歸出口(好了咋就出來別捨不得哈哈)。設計
(3) 遞歸算法解題一般顯得很簡潔,但遞歸算法解題的運行效率較低。因此通常不提倡用遞歸算法設計程序(好是好東西就是太浪費內存了)。遞歸
(4) 在遞歸調用的過程中系統爲每一層的返回點、局部量等開闢了棧來存儲。遞歸次數過多容易形成棧溢出等。因此通常不提倡用遞歸算法設計程序。內存
n=1 | step5 |
n=2 | step4 |
n=3 | step3 |
n=4 | step2 |
n=5 | step1 |
public static void main(String[] args) {
int x =f(5);
System.out.println(x);
}
public static int f(int n){
if(n==1)
return 1;
return n+f(n-1);ci
1 | f(1)=1 |
2 | f(1)+2=3 |
3 | 3+f(2)=6 |
4 | 4+f(3)=40 |
5 | 5+f(4)=15 |
遞歸過程get