Guest User

Untitled

a guest
Feb 18th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 0.89 KB | None | 0 0
  1. program MergeSort;
  2. {$R+}
  3. {$O-}
  4. {$APPTYPE CONSOLE}
  5. uses
  6.   SysUtils;
  7. var n,i:longint;
  8.     a,b: packed array[1..100000] of integer;
  9. procedure Merge(l,r:longint);
  10. var i,j,q,k:longint;
  11. begin
  12.   q:=(l+r) div 2;
  13.   i:=l;
  14.   j:=q+1;
  15.   k:=i;
  16.   if l<q then
  17.     Merge(l,q);
  18.   if q+1<r then
  19.     Merge(q+1,r);
  20.   while (i<=q) and (j<=r) do
  21.     begin
  22.       if a[i]<a[j] then
  23.         begin
  24.           b[k]:=a[i];
  25.           inc(i);
  26.         end else
  27.           begin
  28.             b[k]:=a[j];
  29.             inc(j);
  30.           end;
  31.       inc(k);
  32.     end;
  33.   while (i<=q) do
  34.     begin
  35.       b[k]:=a[i];
  36.       inc(i);
  37.       inc(k);
  38.     end;
  39.   while (j<=r) do
  40.     begin
  41.       b[k]:=a[j];
  42.       inc(j);
  43.       inc(k);
  44.     end;
  45.   for k := l to r do
  46.     a[k]:=b[k];
  47. end;
  48. begin
  49.   reset(input,'input.txt');
  50.   rewrite(output,'output.txt');
  51.   read(n);
  52.   for i := 1 to n do
  53.     read(a[i]);
  54.   Merge(1,n);
  55.   for i := 1 to n do
  56.     write(a[i],' ');
  57. end.
Add Comment
Please, Sign In to add comment