Pagini recente » Cod sursa (job #1219470) | Cod sursa (job #1391680) | Cod sursa (job #1383625) | Cod sursa (job #1296505) | Cod sursa (job #650173)
Cod sursa(job #650173)
#include<stdio.h>
#include<stdlib.h>
int a[500001],n;
void quick(int st,int dr,int a[500001])
{
int i=st,j=dr,p,aux;
p=a[i+rand()%(j-i)];
while(i<=j)
{
while(a[i]<p)++i;
while(a[j]>p)--j;
if(i<=j)
{ aux=a[i];a[i]=a[j];a[j]=aux;++i;--j;}
}
if(st<j)
quick(st,j,a);
if(i<dr)
quick(i,dr,a);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d ", &a[i]);
quick(1,n,a);
for(i=1;i<=n;i++)
printf("%d ", a[i]);
return 0;
}