Pagini recente » Cod sursa (job #1748678) | Cod sursa (job #1609330) | Cod sursa (job #1513691) | Cod sursa (job #1856532) | Cod sursa (job #1815254)
//QUICKSORT
#include <stdio.h>
#include <time.h>
#define MAX 500005
int v[MAX];
void quicksort(int st,int dr){
int i = st, j = dr, pivot, aux;
//srand(time(NULL));
pivot = v[rand()%(dr - st + 1) + st];
do{
while(v[i] < pivot && i <= dr)
++i;
while(v[j] > pivot && j >= st)
--j;
if(i <= j){
aux = v[i];
v[i] = v[j];
v[j] = aux;
++i;
--j;
}
}while(i <= j);
if(st < j) quicksort(st,j);
if(dr > i) quicksort(i,dr);
}
int main(){
int n, i;
FILE *f, *g;
f = fopen("algsort.in","r");
g = fopen("algsort.out","w");
fscanf(f,"%d",&n);
for(i = 1;i <= n; ++i)
fscanf(f,"%d",&v[i]);
quicksort(1,n);
for(i = 1;i <= n; ++i)
fprintf(g,"%d ",v[i]);
return 0;
}