遞迴的原理和分析

2021-06-15 04:44:57 字數 775 閱讀 1963

遞迴作為一種程式設計中使用頻繁的思想和方法,熟話說就是自己呼叫自己,不僅方便靈活,而且可以簡化**。遞迴的實現在很大程度上歸功於棧的機制,因為函式在每次執行時都從棧上獲得了它的形參的私有副本和區域性變數,這些變數位於棧的不同位置,在函式執行過程中,函式原來的形參和變數不會受到干擾,所以遞迴能夠正確的執行並得到預期的結果。一般來說,遞迴需要有邊界條件、遞迴前進段和遞迴返回段。當邊界條件不滿足時,遞迴前進;當邊界條件滿足時,遞迴返回。

下面舉個簡單的例子,數的階層常常是採用遞迴的方法來求解:

int foo(int n)

{ cout<

在上面的函式中,假設n=5,此時,n!=1,則執行else語句,返回n*foo(n-1);由於n-1!=1,所以繼續執行else語句,返回n*(n-1)*foo(n-2),如此執行下去,直到n==1(在遞迴前進的過程中,編譯器都會複製形參的副本)。

2)遞迴返回段

當然後遇到終止條件,則停止遞迴的深入,進行遞迴的返回。因為n==1時,返回1;所以foo(1)=1; 而foo(2)=2*foo(1); f(3)=3*foo(2),如此一步一步返回,則得到輸入n=5時的值foo(5)=5*foo(4)。

遞迴函式的設計最主要的是要確保遞迴的終止條件,在上面的函式中,遞迴終止的條件是n==1。下面我們來對上面函式執行的結果和過程中的變數n進行分析。

上面函式的第一句cout<

關於遞迴和尾遞迴的原理

b color red 基礎很重要,這是永遠不變的真理。color b package sunfa public class digui system.out.println dg dg stack system.out.println jc system.out.println jc 10 sys...

遞迴的構成原理和實現

遞迴,就是在執行的過程中呼叫自己。構成遞迴需具備的條件 1.子問題須與原始問題為同樣的事,且更為簡單 2.不能無限制地呼叫本身,須有個出口,化簡為非遞迴狀況處理。在數學和電腦科學中,遞迴指由一種 或多種 簡單的基本情況定義的一類物件或方法,並規定其他所有情況都能被還原為其基本情況。棧的大小 使用區域...

遞迴的原理

遞迴是經典演算法常用的方法,了解並掌握遞迴可以大大提公升你的程式編寫的能力。1 遞迴的條件 2 最簡單的遞迴 n的階層 3 遞迴的原理 遞迴的條件 遞迴要滿足4個條件 分別是 1函式必須有引數 2函式的引數必須改變,3函式必須呼叫自身,4函式有退出條件。最簡單的遞迴 n的階層 include int...