遞迴和迭代的區別

2021-09-23 18:46:07 字數 633 閱讀 9203

原文 :

遞迴和迭代都是迴圈中的一種。

簡單地說,遞迴是重複呼叫函式自身實現迴圈。

遞迴迴圈中,遇到滿足終止條件的情況時逐層返回來結束。迭代則使用計數器結束迴圈。當然很多情況都是多種迴圈混合採用,這要根據具體需求。

使用遞迴要注意的有兩點:

1)遞迴就是在過程或函式裡面呼叫自身;

2)在使用遞迴時,必須有乙個明確的遞迴結束條件,稱為遞迴出口.

遞迴分為兩個階段:

1)遞推:把複雜的問題的求解推到比原問題簡單一些的問題的求解;

2)回歸:當獲得最簡單的情況後,逐步返回,依次得到複雜的解.

遞迴和迭代的空間利用率

迭代是逐漸逼近,用新值覆蓋舊值,直到滿足條件後結束,不儲存中間值,空間利用率高。

遞迴是將乙個問題分解為若干相對小一點的問題,遇到遞迴出口再原路返回,因此必須儲存相關的中間值,這些中間值壓入棧儲存,問題規模較大時會占用大量記憶體。

兩者之間的關係:

1)遞迴中一定有迭代,但是迭代中不一定有遞迴,大部分可以相互轉換。

2)能用迭代的不用遞迴,遞迴呼叫函式,計算有重複,浪費空間,並且遞迴太深容易造成堆疊的溢位.

遞迴和迭代區別

遞迴和迭代 遞迴的實現是通過呼叫函式本身,函式呼叫的時候,每次呼叫時要做位址儲存,引數傳遞等,這是通過乙個遞迴工作棧實現的。具體是每次呼叫函式本身時需要儲存的內容有區域性變數 形參 函式位址等,那麼,如果遞迴呼叫n次,則遞迴棧裡需要儲存n 區域性變數,n 形參,n 函式位址個記憶體空間,很可能導致空...

遞迴和迭代的區別

遞迴的基本概念 程式呼叫自身的程式設計技巧稱為遞迴,是函式自己呼叫自己.乙個函式在其定義中直接或間接呼叫自身的一種方法,它通常把乙個大型的複雜的問題轉化為乙個與原問題相似的規模較小的問題來解決,可以極大的減少 量.遞迴的能力在於用有限的語句來定義物件的無限集合.使用遞迴要注意的有兩點 1 遞迴就是在...

遞迴和迭代的區別

遞迴的基本概念 程式呼叫自身的程式設計技巧稱為遞迴,是函式自己呼叫自己.乙個函式在其定義中直接或間接呼叫自身的一種方法,它通常把乙個大型的複雜的問題轉化為乙個與原問題相似的規模較小的問題來解決,可以極大的減少 量.遞迴的能力在於用有限的語句來定義物件的無限集合.使用遞迴要注意的有兩點 1 遞迴就是在...