Pagini recente » Cod sursa (job #2329592) | Cod sursa (job #2342200) | Cod sursa (job #701350) | Cod sursa (job #575905) | Cod sursa (job #599468)
Cod sursa(job #599468)
const fin = 'algsort.in'; fout = 'algsort.out';
type
vector = array[1..500 * 1000] of longword;
buffer = array[1..1 shl 17] of char;
var
x : vector;
bufin ,bufout : buffer;
n : longword;
procedure swap( var a , b : longword );
var
c : longword;
begin
c := a; a := b; b := c;
end;
procedure quicksort( st ,dr : longword );
var
i ,j ,m : longword;
begin
i := st; j := dr; m := x[(i + j) div 2];
while (i < j) do
begin
while (x[i] < m) do i := i + 1;
while (x[j] > m) do j := j - 1;
if (i <= j) then
begin
swap( x[i], x[j] );
i := i + 1;
j := j - 1;
end;
end;
if (i < dr) then quicksort( i , dr );
if (j > st) then quicksort( st , j );
end;
procedure main();
var
i : longword;
begin
assign( input, fin ); reset( input );
assign( output, fout ); rewrite( output );
settextbuf( input, bufin );
settextbuf( output, bufout );
readln( n );
for i := 1 to n do read( x[i] );
quicksort( 1, n );
for i := 1 to n do write( x[i], #32 );
end;
begin
main();
end.