Pagini recente » Cod sursa (job #309147) | Cod sursa (job #350833) | Cod sursa (job #775831) | Cod sursa (job #3032363) | Cod sursa (job #468558)
Cod sursa(job #468558)
#include<stdio.h>
#define Nmax 500001
int v[Nmax], n;
void swap(int &a, int &b) {
int aux;
aux=a;
a=b;
b=aux;
}
int part(int st, int dr) {
int i, poz, val;
val=v[dr];
poz=st-1;
for(i=st; i<=dr; i++)
if(v[i]<=val)
swap(v[++poz],v[i]);
return poz;
}
void qsort(int st, int dr) {
int poz;
poz=part(st,dr);
if(st<poz-1)
qsort(st,poz-1);
if(dr>poz+1)
qsort(poz+1,dr);
}
int main() {
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int i=1; i<=n; i++)
scanf("%d",&v[i]);
qsort(1,n);
for(int i=1; i<=n; i++)
printf("%d ",v[i]);
printf("\n");
return 0;
}