Pagini recente » Cod sursa (job #1239063) | Cod sursa (job #2167069) | Cod sursa (job #98569) | Cod sursa (job #789664) | Cod sursa (job #283344)
Cod sursa(job #283344)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int v[500001];
int i,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)
{
if (x<y)
{
int j,p,i,k;
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;
}