Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.72 KB | None | 0 0
  1. var a: array[1..100000] of integer;
  2. var i, j, n, d, buf: integer;
  3. begin
  4.     read(n);
  5.     for i:=1 to n do read(a[i]); // Читает n раз в переменную a
  6.     d:=n div 2; // d = n / 2
  7.     while (d>0) do // каждый раз делит d на 2 до того, как больше 0
  8.     begin
  9.         for i:=1 to n-d do // n - d раз
  10.         begin
  11.             j:=i;
  12.             while ((j>0) and (a[j]>a[j+d])) do
  13.             begin
  14.                 buf:=a[j];
  15.                 a[j]:=a[j+d]; // меняет местами
  16.                 a[j+d]:=buf;
  17.                 j:=j-1;
  18.             end;
  19.         end;
  20.         d:=d div 2;
  21.     end;
  22.     writeln;
  23.     for i:=1 to n do write(a[i]:5);
  24. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement