Pagini recente » Cod sursa (job #1093930) | Cod sursa (job #1883259) | Cod sursa (job #1165267) | Cod sursa (job #279070) | Cod sursa (job #283342)
Cod sursa(job #283342)
#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=(5*x+11*y) >> 4;
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;
}