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