遞歸算法:
優點:代碼簡潔、清晰,並且容易驗證正確性。
缺點:
1、它的運行需要較多次數的函數調用,如果調用層數比較深,每次都要創建新的變量,需要增加額外的堆棧處理,會對執行效率有一定影響,占用過多的內存資源。
2、遞歸算法解題的運行效率較低。在遞歸調用的過程中系統為每一層的返回點、局部變量等開辟了棧來儲存。遞歸次數過多容易造成棧溢出等
注意:遞歸就是在過程或函數里調用自身;使用遞歸策略時要注意的幾個條件
1、必須有一個明確的遞歸結束條件,稱為遞歸出口。
2、遞歸需要有邊界條件、遞歸前進段和遞歸返回段。
3、當邊界條件不滿足時,遞歸前進。當邊界條件滿足時,遞歸返回。
循環算法:
優點:速度快,結構簡單。
缺點:並不能解決所有的問題。有的問題適合使用遞歸而不是循環。如果使用循環並不困難的話,最好使用循環