3

代码:

            int c = 0;
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    c = i * j;
                }
            }

时间复杂度: O(n 2 )

现在以下代码的复杂性是什么:

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    //c = i * j;
                    // nothing is happening inside the loop
                }
            }

复杂性是否与上述相同( O(n 2 ) )或其他?

4

2 回答 2

7

从理论上讲 - 是的,因为仍然存在增加ij仍然需要发生的问题,并将它们与每次迭代中的最终值进行比较。

但是 - 编译器可能会优化它以在恒定时间内完成,并且只需设置 and 的后ij

于 2012-11-30T09:54:42.820 回答
1

两种复杂度都是 O(N^2)。

于 2012-11-30T12:31:26.757 回答