Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program MergeSort;
- {$R+}
- {$O-}
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- var n,i:longint;
- a,b: packed array[1..100000] of integer;
- procedure Merge(l,r:longint);
- var i,j,q,k:longint;
- begin
- q:=(l+r) div 2;
- i:=l;
- j:=q+1;
- k:=i;
- if l<q then
- Merge(l,q);
- if q+1<r then
- Merge(q+1,r);
- while (i<=q) and (j<=r) do
- begin
- if a[i]<a[j] then
- begin
- b[k]:=a[i];
- inc(i);
- end else
- begin
- b[k]:=a[j];
- inc(j);
- end;
- inc(k);
- end;
- while (i<=q) do
- begin
- b[k]:=a[i];
- inc(i);
- inc(k);
- end;
- while (j<=r) do
- begin
- b[k]:=a[j];
- inc(j);
- inc(k);
- end;
- for k := l to r do
- a[k]:=b[k];
- end;
- begin
- reset(input,'input.txt');
- rewrite(output,'output.txt');
- read(n);
- for i := 1 to n do
- read(a[i]);
- Merge(1,n);
- for i := 1 to n do
- write(a[i],' ');
- end.
Add Comment
Please, Sign In to add comment