编程的循环的时间复杂性竞争问题

时间:2013-12-09 17:32:21

标签: c++ loops for-loop while-loop

哪个时间复杂度更高,for循环或while循环? 谁能给我一张图表来比较不同循环的时间复杂度? 如果可能的话,建议参考一下以了解时间复杂性。

2 个答案:

答案 0 :(得分:3)

除了一些技术细节之外,while循环和for循环是同构的:

for (a; b; c) { 
    body; 
}

可以变成:

a;
while (b) {
   body;
   c;
}

因此,两者之间的计算复杂性没有差异。

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

答案 1 :(得分:1)

如果你对它们做同样的事情,它们应该完全相同。例如:

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

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

应该具有几乎完全相同的时间复杂度,因为它们完全相同。

唯一能改变时间复杂性的是循环内部。但除了添加一种方便的方式来声明和迭代变量之外,没有理由支持for超过while