C++ 无法通过计算步骤来测量算法的运行时间
我在计算由以下嵌套循环组成的算法的步骤时遇到一些问题:C++ 无法通过计算步骤来测量算法的运行时间,c++,algorithm,C++,Algorithm,我在计算由以下嵌套循环组成的算法的步骤时遇到一些问题: 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的运行时,非常感谢您的帮助这将计算循环中的步数: int
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的运行时,非常感谢您的帮助这将计算循环中的步数:
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;
如果您需要更高的精度,请查找高精度时钟只需将N的值设置为20或程序内部需要的其他值,并且不使用任何I/O函数cout/cin,在执行for循环之后,程序将结束,cmd将报告执行所需的时间。请特别注意您在计算时遇到的问题。如果这是一个理论信息学的问题,请不要问StackOverflow,这个网站只是编程而已!你在寻找一些数学公式作为答案吗?我认为最内层for循环中的一个步骤++足以计算总步骤。注释中的一个结果和答案中的一个结果将渐近地与日志n上的顺序相同。@srini Oh lol!你完全正确。我是在深夜做出这个回答的,所以这可能就是原因。抢手货