我有一个数字A [1],A [2] ...,A [n]和矩阵B(nxn)的矩阵A,我想保存所有可能的总和。计算B矩阵的简单算法是:
for i=1,2,...,n
for j=i+1,i+2,...,n
add the number from A[i] to A[j]
save the results to B[i][j]
endfor
endfor
我想将此算法更改为更好(具有更好的运行时)。 我改变了第一个i = 1,2,... n到i = 1并且我在第二个结束时增加了这个。我还认为我做了更多需要的计算。要计算B [1] [5]我必须计算A [1] [2] + A [1] [3] + A [1] [4]但是这个总和也在B [1] [4]。所以我也可以用较少的计算来计算(B [1] [4] + A [1] [5])。 任何人都可以帮我改进这个算法吗?
答案 0 :(得分:0)
for i=1,2,...,n
for j=i,i+1,i+2,...,n
if i == j then B[i][j] = A[j]
else B[i][j] = B[i][j - 1] + A[j]
endfor
endfor