Pagini recente » Cod sursa (job #2359469) | Cod sursa (job #321976) | Cod sursa (job #2447511) | Cod sursa (job #125685) | Cod sursa (job #1312644)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define nmax 500005
int n,v[nmax];
int pivot ( int v[], int l, int r )
{
int p,st=l,dr=r,x;
p=rand()%(r-l+1)+l;
x=v[p];
while(st<=dr)
{
while (v[st]<x) st++;
while (v[dr]>x) dr--;
if(st<=dr) swap(v[st],v[dr]), st++, dr--;
}
return dr;
}
void quicksort ( int v[], int l, int r )
{
if (l<r) {
int p = pivot ( v, l, r );
quicksort ( v, l, p );
quicksort ( v, p+1, r );
}
}
void citire()
{
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&v[i]);
}
void afisare()
{
for(int i=1;i<=n;++i)
printf("%d ",v[i]);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
citire();
quicksort( v, 1, n );
afisare();
}