迭代與遞迴

2021-09-01 12:55:12 字數 511 閱讀 8453

to iterate is human,to recurse divine.—— l. peter deutsch

迭代是人,遞迴是神~

遞迴:

int f1(int n1)

迭代:

int f2(int n2)

return s;

}

看完上邊兩個demo,是不是更不知所云 所以下面進行理論

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

①優:節約空間,執行效率高

②缺:具有侷限性,不適合較複雜問題

程式呼叫自身

找到相似性和出口,把乙個大的問題轉化為乙個同樣性質但是規模小的簡單問題

①優:**簡潔,可讀性強(在熟悉套路之後)

②缺:遞迴呼叫函式,浪費空間,而且遞迴太深的話容易造成堆疊的溢位

1.遞迴中一定有迭代,但迭代中不一定有遞迴

2.大部分可相互轉換,相對而言,「能用迭代的不用遞迴」

遞迴和迭代 迭代與遞迴

很多程式設計小白都會遇到 迭代 和 遞迴 的問題 包括我自己 大部分同學還是不知道迭代與遞迴的區別。下面我就嘗試用最通俗易懂的模式講解遞迴與迭代的區別。1.迭代 迭代其實很簡單,我們在程式設計中經常用到迭代。比如說 i 1 print i 這個就是乙個迭代,沒想到吧。迭代的意思其實就是在迴圈 現了參...

動態規劃 迭代與遞迴

遞迴 好像相對高明,但其實效率而言遞迴並不是最佳方案。迭代 貌似複雜,其實效能更高效。分而治之 所謂動態規劃 就是通過遞迴,找出問題本質,並且給出乙個初步的解之後,再將其等效的轉換為迭代的形式。兩個栗子 1.斐波那契數列 青蛙跳台階 2.最長公共子串行 對序列a 0,n b 0,m lcs a,b ...

迭代與遞迴的區別

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