我試過實現兩種方法遞歸和動態方法,都花了0秒這意味着沒有人在我的電腦更好或者代碼中出現錯誤?這裏是這些方法關於算法複雜性的問題
1 //遞歸
#include <stdio.h>
#include <time.h>
#include <iostream>
using std::cout;
void print(int n){
if (n<0) return ;
cout<<n<<" ";
print(n-1);
}
int main(){
int n=10;
time_t start,end;
double dif;
time(&start);
print(n);
time(&end);
dif=difftime(end,start);
printf("it took you %.21f seconds ",dif);
return 0;
}
2.second方法
#include <iostream>
#include <stdio.h>
#include <time.h>
using namespace std;
void print (int n){
if (n<0) return ;
while (n>=0){
cout<<n--<<endl;
}
}
int main(){
int n=10;
double dif;
time_t start,end;
time(&start);
print(n);
time(&end);
dif=difftime(end,start);
printf("it took you %.21f seconds",dif);
return 0;
}
您可能想要以更高的精度查看定時器來進行分析。 – Extrakun 2010-07-19 13:34:33