遞迴和迭代

2021-09-26 13:46:09 字數 935 閱讀 5366

遞迴

在迴圈中讓程式自己呼叫自己的一種方式。

示例:使用遞迴求n的階乘

public

static

void

main

(string[

] args)

static

long

factorial

(long n)

else

}

從上面的**可以看出遞迴的本質,就是把乙個複雜的問題轉化為乙個與原問題相似的較為簡單的問題來a解決。更深層次的的說法就是遞迴是用棧機制實現的,它運用時不斷地深層呼叫函式,直到函式有返回值才會逐層的返回值,每深入一層,都要占去一塊棧資料區域,因此用會占用大量的系統堆疊,記憶體耗用多,執行效率低。

優點:

缺點:

迭代利用變數的原值推算出變數的乙個新值.如果遞迴是自己呼叫自己的話,迭代就是a不停的呼叫b.或者可以說是方法中的一段**實現迴圈。

示例:使用迭代求n的階乘

static int funcb(int n) 

return a;

}

從原理上來說,迭代需要人為的去分析問題的解決方法,再通過迭代來去得到問題的答案。在分析問題的時候或許會有些困難,但一旦分析完問題,就可以很容易的通過迴圈來得到問題的答案。

優點:

缺點:

二者都是迴圈的引用方法,但是在本質上有著很大的區別。遞迴是在方法中自己呼叫自己,等於說是把問題直接拋給系統去解決,簡單明瞭,從而減少**量,但是遞迴會占用大量的系統堆疊,從而導致執行效率很低。迭代則是需要自己去思考問題解決的方法,再使用簡單的迴圈來得到答案,執行效率很高!但是分析問題是乙個困難的過程,遇到難題時很難想出解決的方法。

遞迴和迭代 迭代與遞迴

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

遞迴和迭代

遞迴和迭代是兩種常用的演算法,很多人知道怎麼寫遞迴和迭代,但是不知道什麼時候該用遞迴,什麼時候該用迭代。下面的 分別通過使用遞迴和迭代計算fibonacci數列,可以很清楚的看到效率的驚人差別。當然,很難有個準則說什麼時候該用遞迴,什麼時候該用迭代,但有乙個很簡單的判斷方法 如果你的遞迴呼叫是在函式...

遞迴和迭代

分享自 酷勤網 www.kuqin.com 遞迴函式 遞迴可以描述不同的概念,如果說乙個函式是遞迴的,那麼就是說函式的定義中 直接或者間接地 引用了該函式本身。比如求斐波那契數列,使用swift實現 func fib n int intreturn fib n 1 fib n 2 從函式定義看,fi...