遞歸是壹個反復調用函數本身的循環。叠代是在函數中的壹段代碼中實現循環,循環代碼中參與運算的變量也是保存結果的變量,當前保存的結果作為下壹次循環計算的初始值。
在遞歸循環中,當滿足終止條件時,它逐層返回以結束。叠代使用計數器來結束循環。當然,在很多情況下,多種周期是混合的,這取決於具體的需求。
第二,結構不同:
遞歸和叠代都基於控制結構:叠代使用重復結構,而遞歸使用選擇結構。遞歸和叠代都涉及重復:叠代顯式使用重復結構,而遞歸通過重復函數調用來實現重復。
遞歸和叠代都涉及終止測試:循環條件失敗時叠代終止,滿足基本情況時遞歸終止,用計數器控制反復叠代和遞歸逐步到達終止點:叠代總是修改計數器,直到計數器值不滿足循環條件;遞歸繼續產生原問題的簡化副本,直到達到基本情況。
遞歸算法通常用於解決三種問題:
(1)遞歸定義數據。(斐波那契函數)
(2)用遞歸算法實現問題求解。
這類問題雖然沒有明顯的遞歸結構,但是遞歸求解要比叠代簡單,比如河內問題。
(3)遞歸定義數據的結構。
如二叉樹、廣義表等。,它們的操作可以遞歸描述,因為結構本身固有的遞歸特性。
百度百科-遞歸