我在计算由以下嵌套循环组成的算法的步骤时遇到了一些麻烦:
for(int i=1; i <= N; i++)
for(int j=1; j <= i; j++)
for(int k=1; k <= i*log(j); k++)
x=i+j+k;
我需要计算n = 10,20,40,100,200,400,1000,2000,4000,10000的运行时间,非常感谢任何帮助
答案 0 :(得分:1)
这会计算循环中“步数”的数量:
int steps = 0;
for(int i=1; i <= N; i++) {
for(int j=1; j <= i; j++) {
for(int k=1; k <= i*log(j); k++) {
steps++;
x=i+j+k;
}
}
}
如果这就是你想要的,那么这个实际上就是它了:
time_t start = time(0);
for(int i=1; i <= N; i++)
for(int j=1; j <= i; j++)
for(int k=1; k <= i*log(j); k++)
x=i+j+k;
time_t end = time(0);
time_t timeTaken = end - start;
如果您需要更高的精度,请查找高精度时钟
答案 1 :(得分:1)
只需在程序中将N的值设置为20(或您需要的其他值),并且不使用任何I / O函数(cout / cin),并且在执行for循环后,程序将结束并且cmd将报告执行时间。