Pagini recente » Cod sursa (job #836489) | Cod sursa (job #82046) | Cod sursa (job #4511) | Cod sursa (job #2670141)
#include <stdio.h>
#define NMAX 500000
int v[NMAX];
void myqsort( int begin, int end ) {
int aux, b, e, p;
b = begin;
e = end;
p = v[(begin + end) / 2];
while ( v[b] < p )
b++;
while ( v[e] > p )
e--;
while ( b < e ) {
aux = v[b];
v[b] = v[e];
v[e] = aux;
do
b++;
while ( v[b] < p );
do
e--;
while ( v[e] > p );
}
if ( begin < e )
myqsort( begin, e );
if ( e + 1 < end )
myqsort( e + 1, end );
}
int main() {
FILE *fin, *fout;
int n, i;
fin = fopen( "algsort.in", "r" );
fscanf( fin, "%d", &n );
for ( i = 0; i < n; i++ )
fscanf( fin, "%d", &v[i] );
fclose( fin );
myqsort( 0, n - 1 );
fout = fopen( "algsort.out", "w" );
for ( i = 0; i < n; i++ )
fprintf( fout, "%d ", v[i] );
fclose( fout );
return 0;
}