私は不変式に少し精通しており、小さなループについて多かれ少なかれ見つけることができます。次のJavaの疑似コードの不変式を解くときに、私はとても混乱しています。誰でも助けてください:
Input: an array A
i <- length(A)
# outer invariant
while i != 0 do
k <- i
j <- i - 1
# inner invariant
while j != 0 do
if A[j] > A[k] then
k <- j
j <- j - 1
# inner invariant
swap(A, i, k)
i <- i - 1
# outer invariant