Pagini recente » Cod sursa (job #1670295) | oni_2009_baraj | Cod sursa (job #432197) | Cod sursa (job #2151602) | Cod sursa (job #688939)
Cod sursa(job #688939)
program merge_sort;
var f,g:text;
a:array[1..500001] of longint;
n:longint;
procedure citire;
var i:longint;
begin
readln (f,n);
for i:=1 to n do read (f,a[i]);
end;
procedure quicksort (left,right:integer);
var i,j,tmp,pivot:longint;
begin
i:=left;
j:=right;
pivot:=a[(left+right) div 2];
while (i<=j) do begin while (a[i]<pivot) do i:=i+1;
while (a[j]>pivot) do j:=j-1;
if (i<=j) then begin tmp:=a[i];
a[i]:=a[j];
a[j]:=tmp;
i:=i+1;
j:=j-1;
end;
end;
if (left<j) then quicksort (left,j);
if (i<right) then quicksort (i,right);
end;
procedure tipareste;
var i:longint;
begin
for i:=1 to n do write (g,a[i],' ');
close (g);
end;
begin
assign (f,'algsort.in'); reset (f);
assign (g,'algsort.out'); rewrite (g);
citire;
quicksort (1,n);
tipareste;
end.