Pagini recente » Cod sursa (job #1853646) | Cod sursa (job #1539454) | Cod sursa (job #1830645) | Cod sursa (job #2229943) | Cod sursa (job #589891)
Cod sursa(job #589891)
type vec = array[0 .. 500000] of longint ;
var A : vec ;
i, N : longint ;
f : text ;
Bufin : array[1 .. 1 shl 17] of char;
procedure quicksort ( var vector : vec ; st : longint ; dr : longint ) ;
var temp, min, max, mij : longint ;
begin
mij := vector[st + random ( ( dr - st ) div 2 ) ] ;
min := st ; max := dr ;
while ( min <= max ) do begin
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;
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 .