Pagini recente » Istoria paginii runda/oni2014.cls9 | Profil rusioana2003 | Cod sursa (job #1568895) | Cod sursa (job #490216) | Cod sursa (job #1279529)
#include <stdio.h>
#include <stdlib.h>
#define MAX 500000
void quicksort(int v[], int left, int right) {
int i = left;
int j = right;
int pivot = v[ ( left + right ) / 2];
int tmp;
while ( i <= j ) {
while ( v[i] < pivot )
i++;
while ( v[j] > pivot )
j--;
if ( i <= j ) {
tmp = v[i];
v[i] = v[j];
v[j] = tmp;
i++;
j--;
}
}
if ( left < j )
quicksort(v,left,j);
if ( i < right )
quicksort(v,i,right);
}
int main()
{
FILE *in = fopen("algsort.in","r");
FILE *out = fopen("algsort.out","w");
int i, n, v[MAX];
fscanf(in, "%d", &n);
for ( i = 0; i < n; i++ )
fscanf(in, "%d", &v[i]);
quicksort(v,0,n-1);
for ( i = 0; i < n; i++ )
fprintf(out, "%d ", v[i]);
fclose(in);
fclose(out);
return 0;
}