Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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++_Loops_For Loop_While Loop - Fatal编程技术网

C++ 程序设计竞赛问题循环的时间复杂性

C++ 程序设计竞赛问题循环的时间复杂性,c++,loops,for-loop,while-loop,C++,Loops,For Loop,While Loop,for循环和while循环哪个时间复杂度更高? 有人能给我一张图表来比较不同循环的时间复杂度吗? 如果可能的话,建议好的参考资料来了解时间复杂性。如果你用它们做完全相同的事情,它们应该几乎完全相同。例如: int i = 0; while (i < 10) i++; 及 应该有几乎完全相同的时间复杂度,因为他们正在做完全相同的事情 唯一改变时间复杂性的是循环内部的内容。但是,除了它增加了一种声明和迭代变量的方便方法之外,实在没有理由支持over while。除非有一些技术细节,w

for循环和while循环哪个时间复杂度更高? 有人能给我一张图表来比较不同循环的时间复杂度吗?
如果可能的话,建议好的参考资料来了解时间复杂性。

如果你用它们做完全相同的事情,它们应该几乎完全相同。例如:

int i = 0;
while (i < 10)
    i++;

应该有几乎完全相同的时间复杂度,因为他们正在做完全相同的事情


唯一改变时间复杂性的是循环内部的内容。但是,除了它增加了一种声明和迭代变量的方便方法之外,实在没有理由支持over while。

除非有一些技术细节,while循环和for循环是同构的:

for (a; b; c) { 
    body; 
}
可以转化为:

a;
while (b) {
   body;
   c;
}
因此,两者在计算复杂度上没有区别


至于在两者之间进行选择:通常的经验法则是,如果三个子句中至少有两个对该循环有意义,则使用for循环。

时间复杂度取决于循环中的迭代次数和循环次数。不是关于循环的类型。你的问题定义不清楚。循环的时间复杂度取决于迭代次数。vs while的类型是不相关的。@AbhishekBansal如果我知道迭代次数,那么应该使用哪个循环???Victor如果我已经知道迭代次数,那么如何决定应该使用哪个循环以最小化时间。
a;
while (b) {
   body;
   c;
}