代码:
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 ))或其他?
答案 0 :(得分:7)
理论上 - 是的,因为仍然存在增加仍然需要发生的i
和j
的问题,并将它们与每次迭代中的结束值进行比较。
然而 - 编译器可能会在恒定时间内优化它,只需设置i
和j
的帖子值。
答案 1 :(得分:1)
两种复杂性都是O(N ^ 2)。