壹、含義不同:
遞歸是重復調用函數自身實現循環。叠代是函數內某段代碼實現循環,循環代碼中參與運算的變量同時是保存結果的變量,當前保存的結果作為下壹次循環計算的初始值。
遞歸循環中,遇到滿足終止條件的情況時逐層返回來結束。叠代則使用計數器結束循環。當然很多情況都是多種循環混合采用,這要根據具體需求。
二、結構不同:
遞歸與叠代都是基於控制結構:叠代用重復結構,而遞歸用選擇結構。 遞歸與叠代都涉及重復:叠代顯式使用重復結構,而遞歸通過重復函數調用實現重復。
遞歸與叠代都涉及終止測試:叠代在循環條件失敗時終止,遞歸在遇到基本情況時終止,使用計數器控制重復的叠代和遞歸都逐漸到達終止點:叠代壹直修改計數器,直到計數器值使循環條件失敗;遞歸不斷產生最初問題的簡化副本,直到達到基本情況。遞歸算法壹般用於解決三類問題:
(1)數據的定義是按遞歸定義的。(Fibonacci函數)
(2)問題解法按遞歸算法實現。
這類問題雖則本身沒有明顯的遞歸結構,但用遞歸求解比叠代求解更簡單,如Hanoi問題。
(3)數據的結構形式是按遞歸定義的。
如二叉樹、廣義表等,由於結構本身固有的遞歸特性,則它們的操作可遞歸地描述。
以上內容參考:百度百科-遞歸