Welcome 歡迎光臨! 愛上網路 - 原本退步是向前

迭代與遞迴的差別

 

遞迴(Recursion):一種透過重複將問題分解為同類的子問題而解決問題的方法。在大部分的程式語言中都支援函數的自我呼叫,也就是說在程式語言中可以通過呼叫函數本身來進行遞迴。

  • 選擇結構,是由上而下(Top-Down),慢慢地將問題縮小,來求得答案;
  • 將問題分解成干個子問題,再回頭運算答案,因此會消耗大量記憶體空間,但程式碼簡單明瞭。
  • recursive(遞迴):在實作大多數比較複雜的演算法時(需要把大問題分成小問題),程式可以較為簡潔,例如DFS、Quick Sort、費波那數列

 

迭代(Iteration):其目的通常是為了接近所需求的目標或結果。每一次對過程的重複被稱為一次"迭代",每一次迭代得到的結果通常會被用來作為下一次迭代的初始值。

  • 迴圈結構,是由下而上(Bottom-Up),一步步逼近答案;
  • 用新值覆蓋舊值,直到滿足條件後結束,因為不保存中間值,因此不會消耗很多記憶體空間。
  • iterative(迭代):相比遞迴,在實作一些複雜演算法,程式更為繁瑣
[ 程式設計 ] 瀏覽次數 : 388 更新日期 : 2023/06/24