嵌套循环的时间复杂度?

时间:2018-05-13 09:07:25

标签: algorithm time-complexity

任何人都可以帮我计算和解释这个算法的时间复杂度:

function mystery(n)
    r := 0
    for i := 1 to n − 1 do 
        for j := i + 1 to n do 
            for k := 1 to j do
                r := r + 1 
    return(r)

非常感谢你

1 个答案:

答案 0 :(得分:1)

我不知道如何在StackOverflow上制作sigma字符,但它将是:

Sigma(i=1; n-1)Sigma(j=i+1; n)Sigma(k=1;j)1=Sigma(i=1; n-1)Sigma(j=i+1;n)j

您可以通过以下方式简化内部Sigma:

Sigma(j=i+1; n)j = Sigma(j=1;n)j - Sigma(j=1;i)j = n(n-1)/2 - i(i-1)/2=n^2-i^2+n-i

然后你有:

Sigma(i=1; n-1)n^2-i^2+n-i

它将是O(n^3),但我的答案更多是作为提示而非解决方案