public void foo(int n, int m) {
int i = m;
while (i > 100) {
i = i / 3;
}
for (int k = i ; k >= 0; k--) {
for (int j = 1; j < n; j *= 2) {
System.out.print(k + "\t" + j);
}
System.out.println();
}
}
我认为复杂度应该是O(logn)。由于内部循环的影响,外部循环最多只会执行100次,因此可以省略它。
我不确定的是while子句是否应该纳入大O复杂度中?对于非常大的i值,它可能会产生影响,或者算术运算,无论在什么规模上,都可以视为基本操作并省略。