Pagini recente » Cod sursa (job #3310991) | Cod sursa (job #3303700) | Cod sursa (job #2370983) | Cod sursa (job #1131783) | Cod sursa (job #3327033)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 500000
int vec[NMAX + 1];
void my_qsort( int vec[], int begin, int end ) {
int pivot;
pivot = vec[(begin + end) / 2];
int b = begin, e = end;
while ( vec[b] < pivot )
b++;
while ( vec[e] > pivot )
e--;
int aux;
while ( b < e ) {
aux = vec[b];
vec[b] = vec[e];
vec[e] = aux;
do
b++;
while ( vec[b] < pivot );
do
e--;
while ( vec[e] > pivot );
}
if ( begin < e )
my_qsort( vec, begin , e );
if ( e + 1 < end )
my_qsort( vec, e + 1, end );
}
int main()
{
FILE *fin, *fout;
int num_n, ind;
fin = fopen( "algsort.in", "r" );
fscanf( fin, "%d", &num_n );
for ( ind = 0; ind < num_n; ind++ )
fscanf( fin, "%d", &vec[ind] );
fclose( fin );
my_qsort( vec, 0, num_n - 1 );
fout = fopen( "algsort.out", "w" );
for ( ind = 0; ind < num_n; ind++ )
fprintf( fout, "%d ", vec[ind] );
fclose( fout );
return 0;
}