用斐波那契数列进行测试,计算到第50项,看看记忆化搜索和纯递归消耗的时间
#include<cstdio>
#include<cstdlib>
#include<ctime>
int Num[51];
int fun1(int);
int fun2(int);
int main(){
int result;
Num[1]=Num[2]=1;
clock_t start=clock();
result=fun2(50);
clock_t end=clock();
printf("%lf",double(end-start)/CLOCKS_PER_SEC);
printf("\n%d\n",result);
start=clock();
result=fun1(50);
end=clock();
printf("%lf",double(end-start)/CLOCKS_PER_SEC);
printf("\n%d\n",result);
system("pause");
return 0;
}
int fun1(int n){
if(n==1||n==2){
return 1;
}
return fun1(n-1)+fun1(n-2);
}
int fun2(int n){
if(n<=1){
return n;
}
if(Num[n]!=0){
return Num[n];
}
return Num[n]=fun2(n-1)+fun2(n-2);
}