演算法 迭代和遞迴

2021-07-28 10:28:34 字數 700 閱讀 9777

在日常程式的編寫中,複雜的專案日益增多,在後期的**優化上需要花更多的時間和精力。在前期的規劃上也越來越重要,前期良好的規劃可以避免後期遇到些奇怪的問題。

這次部落格我希望通過講解下迭代和遞迴的具體應用場景,來表達寫程式是前期規劃的作用和解決具體問題所需要的方法。

遞迴和迭代,都是一種迴圈演算法。遞迴在迴圈的過程中,會將這次的結果返回到上次迴圈中,直到最後滿足遞迴的條件。迭代類似於普通的迴圈,只是迭代的結果還是被用在迴圈之中。

遞迴的案例:階乘

:  n! = n * (n-1) * (n-2) * ...* 1(n>0)

int recursive(int i)

}

sum作為乙個值,會在迭代中一直被使用,知道運算到最後的i=1的時候的值,然後在將這些值返回到上一次的迭代中,最後一層一層返回到最後所需要求的值。

還有些看上去很難的問題,比如說漢諾塔問題。但是使用遞迴,就可以很簡單的實現。

迭代的案例:在最優化問題上的取最小值點的問題:在這次取的點的結果中,去計算下一次的點,知道誤差小於一定的值的時候,結束迭代。

遞迴和迭代是解決問題的2種方法,遞迴知到最後的條件,去重最簡單的慢慢的往下推算,再返回到最開始的條件。迭代是知道你需要做到什麼樣的情況,然後選擇對應的過程,去實現最後的條件。

在解決具體的問題中,選擇不同的演算法,節省時間,提高效率。

by:zxy

演算法 迭代和遞迴

遞迴 遞迴常見的優化手段有尾遞迴,迭代,迴圈 尾遞迴 在每一次遞迴的過程中保持了上一次計算的狀態,也就是 線性迭代過程 尾遞迴和一般的遞迴不同在對記憶體的占用,普通遞迴建立stack累積而後計算收縮,尾遞迴只會占用恒量的記憶體 和迭代一樣 尾遞迴是指,在函式返回的時候,呼叫自身本身,並且,retur...

遞迴和迭代 迭代與遞迴

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

遞迴和迭代

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