我的教授说,这种方法的时间复杂度为O(2^n)
。
我认为这种方法的时间复杂度应该是O(n * 2^n)
,因为
外部for循环的成本为O(n)
内部for循环的成本为O(2^n)
public static int loop(int n) {
int j = 1;
for (int i = 0; i < n; i++) {
for (int k = j; k > 0; k--) {
System.out.println("Hello world");
}
j *= 2;
}
return j;
}