三个嵌套for循环的渐近分析

时间:2013-02-24 14:09:00

标签: complexity-theory asymptotic-complexity big-theta

我想计算这个嵌套for循环的θ复杂度:

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < i; j++) {
            for (int k = 0; k < j; k++) {
                // statement

我说它是n ^ 3,但我不认为这是正确的,因为每个for循环不会从1变为n。我做了一些测试:

n = 5 - &gt; 10

10 - &gt; 120

30 - &gt; 4060

50 - &gt; 19600

所以它必须在n ^ 2和n ^ 3之间。我尝试了总和公式等,但我的结果太高了。虽然n ^ 2 log(n),但那也是错误的......

2 个答案:

答案 0 :(得分:4)

使用Sigma Notation是一种有效的逐步方法:

enter image description here

答案 1 :(得分:3)

O(N^3)。确切的公式是(N*(N+1)*(N+2))/6