python之一 迭代與遞迴的區別

2021-09-25 12:01:26 字數 448 閱讀 3227

定義優點

缺點遞迴

程式呼叫自身的程式設計技巧稱為遞迴

1)大問題化為小問題,可以極大的減少**量;

2)用有限的語句來定義物件的無限集合.;

3)**更簡潔清晰,可讀性更好

|1)遞迴呼叫函式,浪費空間;

2)遞迴太深容易造成堆疊的溢位;/td>

迭代利用變數的原值推算出變數的乙個新值,迭代就是a不停的呼叫b.

1)迭代效率高,執行時間只因迴圈次數增加而增加;

2)沒什麼額外開銷,空間上也沒有什麼增加;

1) 不容易理解;

2) **不如遞迴簡潔;

3) 編寫複雜問題時困難。

二者關係

1) 遞迴中一定有迭代,但是迭代中不一定有遞迴,大部分可以相互轉換。

2) 能用迭代的不用遞迴,遞迴呼叫函式,浪費空間,並且遞迴太深容易造成堆疊的溢位./*相對*/

迭代與遞迴的區別

迭代和遞迴的區別 從 程式設計之美 的角度看,可以借用一句非常經典的話 迭代是人,遞迴是神!來從巨集觀上對二者進行把握。遞迴實際上不斷地深層呼叫函式,直到函式有返回才會逐層的返回,遞迴是用棧機制實現的,每深入一層,都要占去一塊棧資料區域,因此,遞迴涉及到執行時的堆疊開銷 引數必須壓入堆疊儲存,直到該...

迭代與遞迴的區別

迭代的特點 迭代是重複過程的活動,每一次對過程的重複稱為一次 迭代 每一次迭代得到的結果會作為下一次迭代的初始值。遞迴的特點 在方法運算的內部呼叫方法本身 使用遞迴的注意事項 遞迴的次數要盡可能的少,因為通過斷點執行可以看出每次遞迴都會在記憶體中建立乙個新的遞迴方法,次數過多會導致記憶體溢位 最簡單...

迴圈(迭代)與遞迴的區別

迴圈 迭代 與遞迴的區別 1。遞迴演算法與迭代演算法的設計思路區別在於 函式或演算法是否具備收斂性,當且僅當乙個演算法存在預期的收斂效果時,採用遞迴演算法才是可行的,否則,就不能使用遞迴演算法。當然,從理論上說,所有的遞迴函式都可以轉換為迭代函式,反之亦然,然而代價通常都是比較高的。但從演算法結構來...