Pagini recente » Cod sursa (job #2709736) | Cod sursa (job #2105618) | Cod sursa (job #330619) | Cod sursa (job #2955451) | Cod sursa (job #1580087)
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int v[500010],N;
#define swap(x,y,t) (t=x,x=y,y=t)
void Qsort(int l,int r)
{
int pivot,i,j=l,t;
if(l<r)
{
pivot=l + rand()%(r-l+1);
swap(v[pivot],v[r],t);
pivot=r;
for(i=l;i<r;++i)
if(v[i]<v[pivot])
swap(v[j],v[i],t),++j;
swap(v[j],v[pivot],t);
Qsort(l,j-1);
Qsort(j+1,r);
}
}
FILE *in,*out;
int main()
{
int i;
in=freopen("algsort.in","r",stdin);
out=freopen("algsort.out","w",stdout);
scanf("%d",&N);
for(i=1;i<=N;++i)
scanf("%d",&v[i]);
srand(time(NULL));
Qsort(1,N);
for(i=1;i<=N;++i)
printf("%d ",v[i]);
fclose(in);
fclose(out);
return 0;
}