我在网上发现了这个:
for (i=1; i<=n*n; i++)
for (j=0; j<i; j++)
sum++;
执行sum ++的确切次数:
Sum{i=1, i=n^2}= (n^2)*((n^2)+1)/2 ∈ Θ(n^4)
报价结束。
虽然我同意结果,但在我看来,这只涉及帐户中的第一个循环,i上的那个,而不是j上的那个。换句话说,在数学上我们会得到与代码相同的结果:
for (i=1; i<=n*n; i++)
sum++;
即,仍然:Sum {i = 1,i = n ^ 2} =(n ^ 2)*((n ^ 2)+1)/2∈Θ(n ^ 4) 而这段代码显然是Θ(n ^ 2)(它恰好运行n ^ 2次)
有人可以解释一下我缺少的东西吗?