迭代和遞迴的區別

2022-09-01 23:45:38 字數 715 閱讀 7214

遞迴遞迴就是函式自己呼叫自己;

遞迴是乙個函式在其定義中直接或間接呼叫自身的一種方法,它通常把乙個大型的複雜的問題轉化為乙個與原問題相似

且規模較小的問題來解決;

遞迴關注兩點

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

2.在使用遞迴時,必須有乙個明確的遞迴結束條件,稱為遞迴介面;

遞迴分為兩個階段

1.遞推:把複雜問題的求解等價為比原問題簡單一些的問題的求解;

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

例子:斐波那契數列為:0,1,1,2,3,5...

fib(0)=0;

fib(1)=1;

fib(n)=fib(n-1)+fib(n-2);

遞迴**:

這種方法的優點是簡潔和容易理解,缺點是時間複雜度太大,隨著n的增大,運算時間將會急劇增加。

因此在很多場合這種方法是不可取的。 使用這種方法的關鍵**是:

int fib(int n)

else    

}迭代**:

這種方法相對於遞迴法來說在時間複雜度上減小了不少,但**相對就要複雜些了。它的思想是這樣的,假設開始時f0=1,f1=1,

currentfib表示當前斐波那契數,則:

int fib(int n)

return currentfib;

}這樣迭代結束和currentfib就是fib(n)了。

遞迴和迭代區別

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

遞迴和迭代的區別

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

遞迴和迭代的區別

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