**
直接或間接地呼叫自身的演算法稱為遞迴演算法。用函式自身給出定義的函式稱為遞迴函式。
在計算機演算法設計與分析中,使用遞迴技術往往使函式的定義和演算法的描述簡潔且易於理解。
遞迴需要有邊界條件、遞迴前進段和遞迴返回段。
當邊界條件不滿足時,遞迴前進;
當邊界條件滿足時,遞迴返回。
注意:在使用遞增歸策略時,必須有乙個明確的遞迴結束條件,稱為遞迴出口,否則將無限進行下去(死鎖)。
遞迴的缺點:
遞迴演算法解題的執行效率較低。
在遞迴呼叫過程中,系統為每一層的返回點、區域性變數等開闢了堆疊來儲存。遞迴次數過多容易造成堆疊溢位等。
逆序輸出乙個正數中的每一位數
例如,對於數12345,依次輸出5 4 3 2 1
void reverse( int n)
遞迴與分治策略
1 全排列問題 設r n 是要進行排列的n個元素。集合x中元素的全排列記為perm x 求r n 的全排列perm r n 用遞迴演算法求解 1 找出遞迴子結構性質 即原問題的解包含了子問題的解,且子問題的描述與原問題相同。這就可以用子問題的解來構造原問題的解。設r i r n 這是乙個子問題。設 ...
遞迴與分治策略
1.遞迴 直接或間接地呼叫自身的演算法稱為遞迴演算法。用函式自身給出定義的函式稱為遞迴函式。1 階乘函式 include using namespace std int main int factorial int n 2 fibonacci數列 include using namespace st...
分治策略與遞迴
先看 資料結構與演算法分析 中對分治策略的解釋 把問題分成兩個大致相等的子問題,然後再遞迴地對他們進行求解,這是 分 治 階段將兩個子問題的解合併到一起並可能再做些少量的附加工作,最後得到整個問題的解。由定義可以看出,分治需要進行兩步操作 分 將問題恰當的劃分為需要迭代處理的兩個子問題,治 將兩個子...