Cod sursa(job #1198905)

Utilizator ianic1999Ianic Umanschii ianic1999 Data 17 iunie 2014 16:45:39
Problema Sortare prin comparare Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 0.79 kb
type tabel=array[1..400000]of longint;
var t:tabel;
    n,i,j:longint;
function pozitie(st,dr:longint):longint;
var aux,piv:longint;
 begin
  piv:=t[st];
   while st<dr do
    begin
     if t[st]>t[dr] then begin aux:=t[st];t[st]:=t[dr];t[dr]:=aux;end;
     if piv=t[st] then dr:=dr-1 else st:=st+1;
    end;
    pozitie:=st;
 end;
procedure qsort(st,dr:longint);
var k:longint;
 begin
  if st<dr then
               begin
                k:=pozitie(st,dr);
                qsort(st,k-1);
                qsort(k+1,dr)
               end;
 end;
begin
 assign(input,'algsort.in');
 reset(input);
 readln(n);
 for i:=1 to n do read(t[i]);
 close(input);

 qsort(1,n);

 assign(output,'algsort.out');
 rewrite(output);
  for i:=1 to n do write(t[i],' ');
 close(output);
end.