Pagini recente » Cod sursa (job #2362858) | Cod sursa (job #891369) | Cod sursa (job #307431) | Cod sursa (job #834078) | Cod sursa (job #2824379)
#include <stdio.h>
#include <ctype.h>
#define MAXN 500000
int v[MAXN];
void myqsort( int begin, int end ){
int b = begin - 1, e = end + 1, p = v[(begin + end) / 2], aux;
while( v[++b] < p );
while( v[--e] > p );
while( b < e ){
aux = v[b];
v[b] = v[e];
v[e] = aux;
while( v[++b] < p );
while( v[--e] > p );
}
if( begin < e )
myqsort(begin, e);
if( e + 1 < end )
myqsort(e + 1, end);
}
FILE *fin, *fout;
static inline int fgetint(){
int n = 0, ch;
while( !isdigit(ch = fgetc(fin)) );
do
n = n * 10 + ch - '0';
while( isdigit(ch = fgetc(fin)) );
return n;
}
int main(){
fin = fopen("algsort.in", "r");
fout = fopen("algsort.out", "w");
int n, i;
n = fgetint();
for( i = 0 ; i < n ; i++ )
v[i] = fgetint();
myqsort( 0, n - 1 );
fprintf(fout, "%d", v[0]);
for( i = 1 ; i < n ; i++ )
fprintf(fout, " %d", v[i]);
fputc('\n', fout);
fclose(fin);
fclose(fout);
return 0;
}