以下代码是O(n ^ 2)还是O(n)?
int i=0, j=0;
while (i < n) {
while (j < n) {
j++;
}
i++;
}
由于内部while循环仅在0到n之间运行一次,我想这相当于有两个单独的while循环,因此总运行时间为O(2n)。
答案 0 :(得分:3)
在这段特定的代码中为O(n)。 例如 如果n = 10 对于i = 0的内部循环执行从j = 0到j = 9(10次),并且对于i = 1到9的内部循环执行0次,(因为j(10)> n(10)永远不会变为真), 因此总时间=外部的10倍+内部的10倍= 20 = 2n 因此,时间复杂度为O(n)