0

我只是想知道这个例子的 Big O 运行时复杂度是多少?

    public void example(int n) {
    for (int i = 0; i<32; i++) {
        System.out.print(i);
    }
}

我不认为它的 O(n) 因为我们不循环通过 n,而是我们循环通过 32 次。谢谢

4

1 回答 1

2

这是一个恒定时间操作,所以它是O(1)(或Theta(1)),因为您总是执行 32 次操作。虽然,作为O符号只是一个上限,它也是O(n)O(lg n)甚至是O(n^n^n^n)O(1)只是这个代码的一个渐近最紧的界限。theta 表示法为您提供了精确的(从底部和顶部开始)复杂度估计,正如之前所说,这是一个Theta(1)代码,因为它的操作数量完全独立于输入参数。

于 2013-09-25T05:15:18.150 回答