BrightOne
Конечно, "с карандашиком" это крутить долго и бессмысленно. Поэтому переписал программу на современный паскаль, введя трассировочную выдачу.
// PascalABC.NET 3.2, сборка 1370 от 24.12.2016 // Внимание! Если программа не работает, обновите версию!
begin var a:=Arr(6,5,10,0,3,8,11,1,4,7,2,9); a.Println; Writeln; var k:=0; for var i:=0 to a.Length-1 do for var j:=0 to i-1 do if a[j]>a[i] then begin Swap(a[i],a[j]); k+=1; a.Println end; Writeln('Перестановок: ',k) end.
Answers & Comments
// PascalABC.NET 3.2, сборка 1370 от 24.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a:=Arr(6,5,10,0,3,8,11,1,4,7,2,9); a.Println; Writeln;
var k:=0;
for var i:=0 to a.Length-1 do
for var j:=0 to i-1 do
if a[j]>a[i] then begin Swap(a[i],a[j]); k+=1; a.Println end;
Writeln('Перестановок: ',k)
end.
Результаты
6 5 10 0 3 8 11 1 4 7 2 9
5 6 10 0 3 8 11 1 4 7 2 9
0 6 10 5 3 8 11 1 4 7 2 9
0 5 10 6 3 8 11 1 4 7 2 9
0 5 6 10 3 8 11 1 4 7 2 9
0 3 6 10 5 8 11 1 4 7 2 9
0 3 5 10 6 8 11 1 4 7 2 9
0 3 5 6 10 8 11 1 4 7 2 9
0 3 5 6 8 10 11 1 4 7 2 9
0 1 5 6 8 10 11 3 4 7 2 9
0 1 3 6 8 10 11 5 4 7 2 9
0 1 3 5 8 10 11 6 4 7 2 9
0 1 3 5 6 10 11 8 4 7 2 9
0 1 3 5 6 8 11 10 4 7 2 9
0 1 3 5 6 8 10 11 4 7 2 9
0 1 3 4 6 8 10 11 5 7 2 9
0 1 3 4 5 8 10 11 6 7 2 9
0 1 3 4 5 6 10 11 8 7 2 9
0 1 3 4 5 6 8 11 10 7 2 9
0 1 3 4 5 6 8 10 11 7 2 9
0 1 3 4 5 6 7 10 11 8 2 9
0 1 3 4 5 6 7 8 11 10 2 9
0 1 3 4 5 6 7 8 10 11 2 9
0 1 2 4 5 6 7 8 10 11 3 9
0 1 2 3 5 6 7 8 10 11 4 9
0 1 2 3 4 6 7 8 10 11 5 9
0 1 2 3 4 5 7 8 10 11 6 9
0 1 2 3 4 5 6 8 10 11 7 9
0 1 2 3 4 5 6 7 10 11 8 9
0 1 2 3 4 5 6 7 8 11 10 9
0 1 2 3 4 5 6 7 8 10 11 9
0 1 2 3 4 5 6 7 8 9 11 10
0 1 2 3 4 5 6 7 8 9 10 11
Перестановок: 32