Pagini recente » Cod sursa (job #1668041) | Cod sursa (job #684552) | Cod sursa (job #2811569) | Cod sursa (job #1818940) | Cod sursa (job #1580129)
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int v[500010],N;
#define swap(x,y,t) (t=x,x=y,y=t)
int pivot,i,j,t;
void Qsort(int l,int r)
{
if(l<r)
{
i=l,j=r;
pivot=v[l + rand()%(r-l+1)];
while(i<=j)
{
while(v[i]<pivot)
++i;
while(v[j]>pivot)
--j;
if(i<=j)
swap(v[i],v[j],t),++i,--j;
}
Qsort(l,j);
Qsort(i,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;
}