嵌套循环的大O复杂性

时间:2015-03-17 01:29:00

标签: java big-o computer-science

for (i = 0; i < 2*n; i += 2) 
{
  for (j=n; j > i; j--)
    //some code that yields O(1)
}

我认为上面会产生n*log(n)但是我看到另一个消息来源说它确实是n^2复杂的大哦。 请向我解释它是什么以及我将来如何解决这类问题。

2 个答案:

答案 0 :(得分:5)

你有一个依赖于n的循环,并且在该循环内你还有另一个循环,它依赖于n,因此得到的O是O(n*n),即O(n^2)

Big O仅在算法的增长率上提供上限。因此,所有常数因子都被丢弃了。

答案 1 :(得分:1)

由于大O用于上限,因此N * N将始终<= N ^ 2,导致O(N * 2)。答案是对的