遞迴:程式呼叫本身,也就是函式自己去呼叫自己
當我們在說乙個過程是遞迴的時候,也就是這個過程在定義的時候直接或者間接的呼叫了該過程的本身。
迭代:根據變數的規則計算得出新的乙個值,也就是a不斷去呼叫b的過程,這和遞迴自己呼叫自己不同。
遞迴中一定有迭代,而迭代中不一定有遞迴。
同時遞迴呼叫會浪費資源,遞迴得越深,越容易引起堆疊的洩漏。也就是能用迭代的函式就利用迭代,少用遞迴函式。
下面是關於階乘的**
//迭代方法
long funa(int p)
return p;
}//遞迴方法
long fun(int p)
同樣在對於斐波那契數列中
//迭代方法
int fib(int n)
return a;
}//遞迴方法
int f2(int n)
在用迭代找關係的時候可以列出f(4),f(5),用數學中的不完全歸納法找出變數的規則,但是要注意係數的問題。也就是應該檢查一下關係式的正確與否。
迭代與遞迴
to iterate is human,to recurse divine.l.peter deutsch 迭代是人,遞迴是神 遞迴 int f1 int n1 迭代 int f2 int n2 return s 看完上邊兩個demo,是不是更不知所云 所以下面進行理論 利用變數的原值推算出變數的乙...
遞迴和迭代 迭代與遞迴
很多程式設計小白都會遇到 迭代 和 遞迴 的問題 包括我自己 大部分同學還是不知道迭代與遞迴的區別。下面我就嘗試用最通俗易懂的模式講解遞迴與迭代的區別。1.迭代 迭代其實很簡單,我們在程式設計中經常用到迭代。比如說 i 1 print i 這個就是乙個迭代,沒想到吧。迭代的意思其實就是在迴圈 現了參...
迭代與遞迴的區別
迭代和遞迴的區別 從 程式設計之美 的角度看,可以借用一句非常經典的話 迭代是人,遞迴是神!來從巨集觀上對二者進行把握。遞迴實際上不斷地深層呼叫函式,直到函式有返回才會逐層的返回,遞迴是用棧機制實現的,每深入一層,都要占去一塊棧資料區域,因此,遞迴涉及到執行時的堆疊開銷 引數必須壓入堆疊儲存,直到該...