Pagini recente » Borderou de evaluare (job #2017448) | Borderou de evaluare (job #1281288) | Cod sursa (job #3191901) | Cod sursa (job #51154) | Cod sursa (job #927859)
Cod sursa(job #927859)
program qsort;
type vector=array[1..500000] of longint;
var v:vector;
i,n:longint;
intrare,iesire:array[0..500000] of char;
f,g:text;
procedure swap(var a,b:longint);
var aux:longint;
begin
aux:=a;a:=b;b:=aux;
end;
procedure qsort(var v:vector; st,dr:longint);
var i,j,pivot,aux:longint;
begin
i:=st;
j:=dr;
pivot:=v[(st+dr) div 2];
while i<=j do begin
while v[i]<pivot do inc(i);
while v[j]>pivot do dec(j);
if i<=j then begin
swap(v[i],v[j]);
inc(i);
dec(j);
end;
end;
if st<j then qsort(v,st,j);
if i<dr then qsort(v,i,dr);
end;
begin
assign(f,'algsort.in');reset(f); settextbuf(f,intrare);
assign(g,'algsort.out');rewrite(g); settextbuf(g,iesire);
readln(f,n);
for i:=1 to n do read(f,v[i]);
qsort(v,1,n);
for i:=1 to n do write(g,v[i],' ');
close(f);close(g);
end.