【发布时间】:2011-10-21 22:32:42
【问题描述】:
我被分配了以下家庭作业,
写一个程序在你的电脑上测试需要多长时间 nlogn、n2、n5、2n 和 n! n=5, 10, 15, 20 的加法。
我已经编写了一段代码,但我的执行时间一直为 0。有人可以帮我解决这个问题吗?谢谢
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
int main()
{
float n=20;
time_t start, end, diff;
start = time (NULL);
cout<<(n*log(n))*(n*n)*(pow(n,5))*(pow(2,n))<<endl;
end= time(NULL);
diff = difftime (end,start);
cout <<diff<<endl;
return 0;
}
【问题讨论】:
-
看来您宁愿执行多次加法操作。尽管可能很难衡量 2432902008176640000 次添加的时间。 - 似乎练习的目的可能是了解不同的算法复杂性,而不是为任意操作计时。
-
我看到你完全不知道 C 是什么。让我给你一个提示:它没有
<iostream>。 -
是的,意思是解释大O。
-
多么邪恶的任务!为什么要编写一个计算机程序来执行 n, n^2, n!操作和时间,对于一些 n?为什么不只计算 n,n^2,n!等在计算器上。或者,你必须编写一个程序,编写一个打印 n、n^2、n 值的程序!有人请解雇教授!
-
difftime()返回一个 double,而不是 time_t。