Pagini recente » Cod sursa (job #2243028) | Cod sursa (job #2398199) | Cod sursa (job #1755395) | Cod sursa (job #155571) | Cod sursa (job #2617924)
#include <stdio.h>
#include <assert.h>
int v[500000];
void myqsort( int start, int stop ) {
int i, j, aux, pivot;
pivot = v[ ( start + stop ) / 2 ];
i = start;
j = stop;
while ( i <= j ) {
while ( v[ i ] < pivot )
i++;
while ( v[ j ] > pivot )
j--;
if ( i <= j ) {
aux = v[ i ];
v[ i ] = v[ j ];
v[ j ] = aux;
i++;
j--;
}
}
if ( start < j )
myqsort( start, j );
if ( i < stop )
myqsort( i, stop );
}
int main() {
int n, i;
FILE *fin, *fout;
fin = fopen( "algsort.in", "r" );
assert( fscanf( fin, "%d", &n ) == 1 );
for ( i = 0; i < n; i++ )
assert( fscanf( fin, "%d", &v[ i ] ) == 1 );
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;
}