Pagini recente » Cod sursa (job #2363986) | Cod sursa (job #2785300) | Cod sursa (job #1446775) | Cod sursa (job #2279391) | Cod sursa (job #1727948)
#include <cstdio>
#define NMax 500005
int v[NMax];
int divide(int p, int q)
{
int st = p, dr = q, x = v[p];
while(st < dr)
{
while( st < dr && v[dr] >= x ) dr--;
v[st] = v[dr];
while( st < dr && v[st] <= x ) st++;
v[dr] = v[st];
}
v[st] = x;
return st;
}
void Quick( int p, int q )
{
int m = divide(p,q);
if( m - 1 > p ) Quick(p,m-1);
if( m + 1 < q ) Quick(m+1,q);
}
int main(){
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int n;
scanf("%d",&n);
for( int i = 1; i <= n; ++i ) scanf("%d",&v[i]);
Quick(1,n);
for( int i = 1; i <= n; ++i ) printf("%d ",v[i]);
return 0;
}