1. 程式人生 > >遞迴的定義

遞迴的定義

遞迴做為一種演算法在程式設計語言中廣泛應用.是指函式/過程/子程式在執行過程式中直接或間接呼叫自身而產生的重入現像.

程式呼叫自身的程式設計技巧稱為遞迴( recursion)。
一個過程或函式在其定義或說明中又直接或間接呼叫自身的一種方法,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題過程所需要的多次重複計算,大大地減少了程式的程式碼量。遞迴的能力在於用有限的語句來定義物件的無限集合。用遞迴思想寫出的程式往往十分簡潔易懂。
一般來說,遞迴需要有邊界條件、遞迴前進段和遞迴返回段。當邊界條件不滿足時,遞迴前進;當邊界條件滿足時,遞迴返回。
注意:
(1) 遞迴就是在過程或函式裡呼叫自身;
(2) 在使用遞增歸策略時,必須有一個明確的遞迴結束條件,稱為遞迴出口。

遞迴演算法一般用於解決三類問題:
(1)資料的定義是按遞迴定義的。(Fibonacci函式)
(2)問題解法按遞迴演算法實現。(回溯)
(3)資料的結構形式是按遞迴定義的。(樹的遍歷,圖的搜尋)

遞迴的缺點:
遞迴演算法解題的執行效率較低。在遞迴呼叫的過程當中系統為每一層的返回點、區域性量等開闢了棧來儲存。遞迴次數過多容易造成棧溢位等。