很多程式設計小白都會遇到'迭代'和'遞迴'的問題(包括我自己),大部分同學還是不知道迭代與遞迴的區別。下面我就嘗試用最通俗易懂的模式講解遞迴與迭代的區別。
1.迭代:
迭代其實很簡單,我們在程式設計中經常用到迭代。
比如說:i += 1;print(i)
這個就是乙個迭代,沒想到吧。
迭代的意思其實就是在迴圈**現了參與運算的變數就是儲存結果的變數,這樣就可以算是迭代。
2.遞迴:
比如乙個非常典型的斐波那契數列演算法,就是乙個遞迴。
遞迴的意思就是自己通過呼叫自己的函式實現迴圈,在指定的條件下停止。這就是遞迴。
其實遞迴和迭代都是實現迴圈的一種方法,在特定情況下怎麼使**邏輯更加清晰、使**更加簡潔,去選擇各種迴圈方法。
迭代與遞迴
to iterate is human,to recurse divine.l.peter deutsch 迭代是人,遞迴是神 遞迴 int f1 int n1 迭代 int f2 int n2 return s 看完上邊兩個demo,是不是更不知所云 所以下面進行理論 利用變數的原值推算出變數的乙...
動態規劃 迭代與遞迴
遞迴 好像相對高明,但其實效率而言遞迴並不是最佳方案。迭代 貌似複雜,其實效能更高效。分而治之 所謂動態規劃 就是通過遞迴,找出問題本質,並且給出乙個初步的解之後,再將其等效的轉換為迭代的形式。兩個栗子 1.斐波那契數列 青蛙跳台階 2.最長公共子串行 對序列a 0,n b 0,m lcs a,b ...
迭代與遞迴的區別
迭代和遞迴的區別 從 程式設計之美 的角度看,可以借用一句非常經典的話 迭代是人,遞迴是神!來從巨集觀上對二者進行把握。遞迴實際上不斷地深層呼叫函式,直到函式有返回才會逐層的返回,遞迴是用棧機制實現的,每深入一層,都要占去一塊棧資料區域,因此,遞迴涉及到執行時的堆疊開銷 引數必須壓入堆疊儲存,直到該...