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