遞歸算法:是一種直接或者間接地調用自身的算法。在計算機編寫程序中,遞歸算法對解決一大類問題是十分有效的,它每每使算法的描述簡潔並且易於理解。
遞歸過程通常經過函數或子過程來實現。
遞歸算法的實質:是把問題轉化爲規模縮小了的同類問題的子問題。而後遞歸調用函數(或過程)來表示問題的解。
遞歸算法解決問題的特色:
(1) 遞歸就是在過程或函數裏調用自身。
(2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱爲遞歸出口。
(3) 遞歸算法解題一般顯得很簡潔,但遞歸算法解題的運行效率較低。因此通常不提倡用遞歸算法設計程序。
(4) 在遞歸調用的過程中系統爲每一層的返回點、局部量等開闢了棧來存儲。遞歸次數過多容易形成棧溢出等。因此通常不提倡用遞歸算法設計程序。
遞歸的原理,其實就是一個棧(stack), 好比求5的階乘,要知道5的階乘,就要知道4的階乘,4又要是到3的,以此類推,因此遞歸式就先把5的階乘表示入棧, 在把4的入棧,直到最後一個,以後呢在從1開始出棧, 看起來很麻煩,確實很麻煩,他的好處就是寫起代碼來,十分的快,並且代碼簡潔,其餘就沒什麼好處了,運行效率出奇的慢.