我对不变量有点熟悉,我或多或少可以在一个小循环中找到它。在为以下 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