遞迴與分治策略

2021-06-18 14:12:01 字數 492 閱讀 6061

1.遞迴

直接或間接地呼叫自身的演算法稱為遞迴演算法。用函式自身給出定義的函式稱為遞迴函式。

1)階乘函式

#include

using namespace std;

int main()

int factorial(int n)

2)fibonacci數列

#include

using namespace std;

int main()

/****factorial function*****/

/*int factorial(int n)

*//**********fibonacci function*************/

int fibonacci(int n)

3).ackerman函式

當乙個函式及它的變數由函式本身定義時,成這個函式是雙遞迴函式。

long ackerman(int n, int m)

遞迴與分治策略

1 全排列問題 設r n 是要進行排列的n個元素。集合x中元素的全排列記為perm x 求r n 的全排列perm r n 用遞迴演算法求解 1 找出遞迴子結構性質 即原問題的解包含了子問題的解,且子問題的描述與原問題相同。這就可以用子問題的解來構造原問題的解。設r i r n 這是乙個子問題。設 ...

分治策略與遞迴

先看 資料結構與演算法分析 中對分治策略的解釋 把問題分成兩個大致相等的子問題,然後再遞迴地對他們進行求解,這是 分 治 階段將兩個子問題的解合併到一起並可能再做些少量的附加工作,最後得到整個問題的解。由定義可以看出,分治需要進行兩步操作 分 將問題恰當的劃分為需要迭代處理的兩個子問題,治 將兩個子...

遞迴與分治策略

輸出最長公共子串 lcs 二維陣列veca記錄的是兩個字串xi和yj的lcs長度 int lcs length const string str1,const string str2,vector veca,vector vecb for j 0 j str2.length j for i 1 i ...