So I was given this algorithm :
Algorithm RunningSum(int[] A)
n = A.length;
for i = 2 to n do
A[i] = A[i] + A[i - 1]
end
return A;
end
and I need to find the loop invariant
but I can figure out what the output could be...
lets say I have a array
a[4]= {1,2,4,3}
will the output be a[4] = {1,3,6,7} from {1,(1+2),(2+4),(4+3)} or will it be a[4]={1,3,7,10} from {1,(1+2),(3+4),(7+3)}
Thanks in advance.
Source: https://en.m.wikipedia.org/wiki/Loop_invariant
For
We can also say "logical condition" or just
boolean. ;)For the given code/loop/algorithm:
We can surely state, that:
i >= 2i <= n(<or<=..depends on your "language"...to be exact:)i):A[i] == A[i] + A[i - 1](equality! not assignment)n == A.length,A == A... + all "tautologies" ;).. are all
true"before (and after) each iteration", thus our "loop invariant(s)" (of concern)Regarding "output"/algorithm interpretation, i more tend to:
.#