Pagini recente » Cod sursa (job #1275477) | Cod sursa (job #69880) | Cod sursa (job #1491103) | Cod sursa (job #2342045) | Cod sursa (job #1580085)
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int v[500010],N;
void swap(int *x,int *y)
{
int t=*x;
*x=*y;
*y=t;
}
void Qsort(int l,int r)
{
int pivot,i,j=l;
if(l<r)
{
pivot=l + rand()%(r-l+1);
swap(&v[pivot],&v[r]);
pivot=r;
for(i=l;i<r;++i)
if(v[i]<v[pivot])
swap(&v[j++],&v[i]);
swap(&v[j],&v[pivot]);
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;
}