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 子句,是否应该将其合并到 Big-O 复杂性中?对于非常大的i值,它可能会产生影响,或者算术运算,无论规模多大,都算作基本运算并且可以省略?