Pagini recente » Cod sursa (job #38062) | Cod sursa (job #1089099) | Cod sursa (job #2963164) | Cod sursa (job #1833550) | Cod sursa (job #287368)
Cod sursa(job #287368)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int n,l,v[500001];
void quicksort(int x,int y)
{
if(x>=y)
return;
int p=rand()%(y-x+1)+x;
int aux;
int i,j;
i=x+1;
j=y;
while(i<=j)
{
while(i<=y && v[i]<=p) i++;
while(j>=x && v[j]>p) j--;
if(i<j)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
i++;j--;
}
}
i--;
v[x]=v[i]; v[i]=p;
quicksort(x,i-1);
quicksort(i+1,y);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
srand(time(0));
scanf("%d",&n);
for(l=1;l<=n;l++)
scanf("%d",&v[l]);
quicksort(1,n);
for(l=1;l<=n;l++)
printf("%d ",v[l]);
return 0;
}