Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var a: array[1..100000] of integer;
- var i, j, n, d, buf: integer;
- begin
- read(n);
- for i:=1 to n do read(a[i]); // Читает n раз в переменную a
- d:=n div 2; // d = n / 2
- while (d>0) do // каждый раз делит d на 2 до того, как больше 0
- begin
- for i:=1 to n-d do // n - d раз
- begin
- j:=i;
- while ((j>0) and (a[j]>a[j+d])) do
- begin
- buf:=a[j];
- a[j]:=a[j+d]; // меняет местами
- a[j+d]:=buf;
- j:=j-1;
- end;
- end;
- d:=d div 2;
- end;
- writeln;
- for i:=1 to n do write(a[i]:5);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement