用于创建矩阵的蛮力算法的紧渐近似

时间:2014-10-02 00:10:13

标签: algorithm big-o asymptotic-complexity big-theta

考虑以下问题:

给定n个元素的数组R,构造矩阵M,使得M [x,y] =Σ k = x ... y R [k]

我需要计算紧的渐近边界...例如Θ(算法)

我相信这是O(n³),因为你有两个嵌套的for循环,每个循环都有n个操作,然后在内部for循环中你最多在数组R上添加n个以生成插入到M中的和[X,Y]。

我的直觉在这里是否正确?我该如何严格证明这一点?

1 个答案:

答案 0 :(得分:2)

您可以在O(n²)中只使用两个嵌套循环,在上面的行中采用记忆的∑k=x…(y-1)解决方案:

for x from 1 to n, y from 1 to n
    if (y < x)
        M[x,y] = 0
    else if (y == x)
        M[x,y] = R[y]
    else
        M[x,y] = M[x,y-1] + R[y]