... (x[i] > x[i + 1]) do Dec(i); if i > 0 then {Cha gp phi hoán v cui (n, n-1, ,1)}――――――begin k := n; {xk là phn t cui dãy}―――― while x[k] < x[i] do Dec(k);―{Lùi dn k ... khi gp mt xi cha đt gii hn trên n - k + i} while (i > 0) and (x[i] = n - k + i) do Dec(i); if i > 0 then―{Nu cha lùi đn 0 có ngha là cha phi cu hình kt thúc}―― begin ... x[b]); {i ch xa và xb} Inc(a); {Tin a và lùi b, đi ch tip cho ti khi a, b chm nhau} Dec(b); end; end; until i = 0;―{Toàn dãy là dãy gim dn - không sinh tip đc - ht cu hình}...