大问题 - 算法分析II

我正在做一个问题,要求找到使用大O表示法简化的嵌套for循环的复杂性。 问题是:
for i <- 1 to n do
    for j <- 1 to n do
        for k <- 1 to (i+j) do
            a unit cost operation
我必须使用系列符号的总和来证明上述内容。我有点理解这个概念并给了它一个裂缝。我只是想知道我是否正确地做到了。 这是我的答案: **假设sum(x = i,y)是大写sigma符号,x为下限,y为上限。 => sum(i = 1,n)sum(j = 1,n)sum(k = 1,i + j)1 => sum(i = 1,n)sum(j = 1,n)(i + j) => sum(i = 1,n)n * i => n * sum(i = 1,n)i 算术级数之和的规则给出: => n * n / 2(n + 1) =>(n ^ 3 + n ^ 2)/ 2 使用大哦规则 - > max(f(x),g(x)): => max(n ^ 3/2,n ^ 2/2) => O(n ^ 3) 我知道答案是正确的,但不确定我之前的计算是否......     
已邀请:
通过小修正:
  sum(i=1, n) sum(j=1, n) sum(k=1, i+j) 1
= sum(i=1, n) sum(j=1, n) (i+j)
= [ sum(i=1, n) sum(j=1, n) i ] + [ sum(i=1, n) sum(j=1, n) j ]
=   sum(i = 1, n) n*i           +   sum(i=1, n) n*(n+1)/2 
=   n * sum (i = 1, n) i        +   n * n * (n+1) / 2
=   n * n * (n+1) / 2           +   n * n * (n+1) / 2
=   n * n * (n+1)
=   n^3 + n^2
=   O( max(n^3, n^2) )           <--- as you correctly say
=   O(n^3)
实际上,它是
Θ(n^3)
你也可以使用那个
i+j <= 2*n
   sum(i=1, n) sum(j=1, n) sum(k=1, i+j) 1
=  sum(i=1, n) sum(j=1, n) (i+j)
<= sum(i=1, n) sum(j=1, n) 2*n
=  2*n * sum(i=1, n) sum(j=1, n) 1
=  2 * n^3
=  O(n^3)
    
直接和正式(和经验验证),与
c
- >单位成本操作:     

要回复问题请先登录注册