Pagini recente » Cod sursa (job #564213) | Cod sursa (job #2704273) | Cod sursa (job #1127358) | Cod sursa (job #3210908) | Cod sursa (job #545142)
Cod sursa(job #545142)
program algsort_;
var v:array[1..500000] of longword;
n:longword;
function feloszt(b,e:longword):longword;
var p:longword;
h:longword;
begin
h:= v[(b+e)div 2];
while b<e do
begin
while v[b]<h do
inc(b);
while v[e]>h do
dec(e);
if b<>e then
begin
p:=v[b];
v[b]:=v[e];
v[e]:=p;
if v[e]=v[b] then dec(e);
end;
end;
feloszt := e;
end;
procedure qsort(b,e:longword);
var m:longword;
begin
if b>=e then exit;
m := feloszt(b,e);
qsort(b,m-1);
qsort(m+1,e);
end;
var be,ki:text;
i:longword;
buf:array[1..32000] of byte;
begin
assign(be,'algsort.in');
assign(ki,'algsort.out');
settextbuf(be,buf);
reset(be);
readln(be,n);
for i:=1 to n do
read(be,v[i]);
close(be);
settextbuf(ki,buf);
rewrite(ki);
qsort(1,n);
for i:=1 to n do
write(ki,v[i],' ');
close(ki);
end.