Pagini recente » Cod sursa (job #1607960) | Cod sursa (job #1366327) | Cod sursa (job #1638993) | Cod sursa (job #2033711) | Cod sursa (job #283339)
Cod sursa(job #283339)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int v[500001];
int i,p,j,n;
inline void inter (int x, int y)
{
int aux=v[x];
v[x]=v[y];
v[y]=aux;
}
void quick (int x, int y)
{
int j,p,i,k;
if (x>=y) return;
p=rand()%(y-x+1)+x;
i=x-1;
inter (p,y);
for (j=x;j<=y;j++)
if (v[j]<=v[y]) inter (++i,j);
quick (x,i-1);
quick (i+1,y);
}
int main ()
{
freopen ("algsort.in","r",stdin);
freopen ("algsort.out","w",stdout);
scanf ("%d",&n);
for (i=1;i<=n;i++) scanf ("%d",&v[i]);
srand(time(0));
quick (1,n);
for (i=1;i<=n;i++) printf ("%d ",v[i]);
return 0;
}