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値の場合、影響を与える可能性があります。または算術演算は、どのスケールでも問題なく、基本演算としてカウントされ、省略できますか?