C++ 程序设计竞赛问题循环的时间复杂性
for循环和while循环哪个时间复杂度更高? 有人能给我一张图表来比较不同循环的时间复杂度吗?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
如果可能的话,建议好的参考资料来了解时间复杂性。如果你用它们做完全相同的事情,它们应该几乎完全相同。例如:
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;
}