Cod sursa(job #688939)

Utilizator iu.ciocoiuIulian iu.ciocoiu Data 23 februarie 2012 23:21:25
Problema Sortare prin comparare Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 1.05 kb
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.