Pagini recente » Cod sursa (job #2313142) | Cod sursa (job #395278) | Cod sursa (job #2174290) | Cod sursa (job #2533153) | Cod sursa (job #480433)
Cod sursa(job #480433)
type vec = array[0..500000] of longint ;
var A : vec ;
i, N : longint ;
f : text ;
Bufin : array[1..1 shl 17]of boolean;
procedure quicksort ( var vector : vec ; st : longint ; dr : longint ) ;
var temp, min, max, mij : longint ;
begin
mij := vector[st + (dr - st) div 2] ;
min := st ; max := dr ;
repeat
while ( vector[min] < mij ) do
inc ( min ) ;
while ( vector[max] > mij ) do
dec ( max ) ;
if ( min <= max ) then
begin
temp := vector[min] ;
vector[min] := vector[max] ; inc ( min ) ;
vector[max] := temp ; dec ( max ) ;
end;
until min > max ;
if ( st < max ) then
quicksort ( vector, st, max ) ;
if ( dr > min ) then
quicksort ( vector, min, dr ) ;
end ;
begin
assign ( f, 'algsort.in' ) ; reset ( f ) ;
SetTextBuf ( f, Bufin ) ;
readln ( f, N ) ;
for i := 1 to N do
read ( f, A[i] ) ;
close ( f ) ;
quicksort ( A, 1, N ) ;
assign ( f, 'algsort.out' ) ; rewrite ( f ) ;
SetTextBuf ( f, Bufin ) ;
for i := 1 to N do
write ( f, A[i], ' ' ) ;
close ( f ) ;
end .