Pagini recente » Cod sursa (job #2657751) | Cod sursa (job #1730643) | Cod sursa (job #1560238) | Cod sursa (job #2665944) | 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;
}