Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法通过计算步骤来测量算法的运行时间_C++_Algorithm - Fatal编程技术网

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!你完全正确。我是在深夜做出这个回答的,所以这可能就是原因。抢手货