Pagini recente » Cod sursa (job #1600741) | Cod sursa (job #2747927) | Cod sursa (job #2020988) | Cod sursa (job #1323221) | Cod sursa (job #1160380)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 500000
int v[MAXN];
inline int pivot(int st, int dr){
int i, j, aux;
i=st+(rand()%(dr-st+1));
aux=v[i];
v[i]=v[dr];
v[dr]=aux;
for(i=j=st; i<dr; i++){
if(v[i]<v[dr]){
aux=v[i];
v[i]=v[j];
v[j]=aux;
j++;
}
}
aux=v[dr];
v[dr]=v[j];
v[j]=aux;
return j;
}
void quickSort(int st, int dr){
int p;
if(st>=dr){
return ;
}
p=pivot(st, dr);
quickSort(st, p-1);
quickSort(p+1, dr);
}
int main(){
int n, i;
FILE *fin,*fout;
fin=fopen("algsort.in","r");
fout=fopen("algsort.out","w");
fscanf(fin, "%d", &n);
for(i=0; i<n; i++){
fscanf(fin, "%d", &v[i]);
}
quickSort(0, n-1);
for(i=0; i<n; i++){
fprintf(fout, "%d ", v[i]);
}
fprintf(fout, "\n");
fclose(fin);
fclose(fout);
return 0;
}