fork download
  1. program abc;
  2. var
  3. i,pos,tmp,count:integer;
  4. a:array[1..6] of integer;
  5.  
  6. begin
  7. count:=0; a[1]:=1; a[2]:=4; a[3]:=2; a[4]:=4; a[5]:=7; a[6]:=9;
  8. pos:=1;
  9. while pos <= 6 do
  10. begin
  11. count:=count+1;
  12. if (pos=1) or (A[pos-1]<=A[pos]) then
  13. pos:=pos+1
  14. else
  15. begin
  16. tmp := a[pos-1];
  17. a[pos-1] := a[pos];
  18. a[pos] := tmp;
  19. pos:=pos-1;
  20. end;
  21. write ('count ',count,', pos',pos,';');
  22. for i:=1 to 6 do
  23. write(' ', a[i]);
  24. writeln;
  25.  
  26.  
  27. end;
  28. end.
Success #stdin #stdout 0s 4340KB
stdin
Standard input is empty
stdout
count 1, pos2; 1 4 2 4 7 9
count 2, pos3; 1 4 2 4 7 9
count 3, pos2; 1 2 4 4 7 9
count 4, pos3; 1 2 4 4 7 9
count 5, pos4; 1 2 4 4 7 9
count 6, pos5; 1 2 4 4 7 9
count 7, pos6; 1 2 4 4 7 9
count 8, pos7; 1 2 4 4 7 9