Pagini recente » Cod sursa (job #476646) | Cod sursa (job #246088) | Cod sursa (job #2442581) | Rating Katyia (Katyia) | Cod sursa (job #1019380)
#include "stdio.h"
#include "stdlib.h"
int v[500001],n;
FILE *f,*g;
void qs(int s,int d)
{
if(s<d){
int i,j;
int aux;
int pivot;
i=s;
j=d;
pivot = v[rand()%i+j];
while(i<=j){
while(v[i]<pivot){i++;}
while(v[j]>pivot){j--;}
if(i<=j){aux=v[i];v[i]=v[j];v[j]=aux;i++;j--;}
if(s<j) qs(s,j);
if(i<d) qs(i,d);
}
}
}
int main()
{
f=fopen("algsort.in","r");
g=fopen("algsort.out","w");
fscanf(f,"%d",&n);
int i;
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
qs(1,n);
for(i=1;i<=n;i++)
fprintf(g,"%d ",v[i]);
fclose(f);
fclose(g);
return 0;
}