Pagini recente » Cod sursa (job #2636564) | Cod sursa (job #2413663) | Cod sursa (job #177497) | Cod sursa (job #2540638) | Cod sursa (job #455978)
Cod sursa(job #455978)
#include <cstdio>
inline void swap(unsigned a[], int x, int y){
static unsigned aux;
aux = a[x];
a[x] = a[y];
a[y] = aux;
}
void qsort(unsigned a[], int left, int right){
int i, last;
if(left >= right)
return;
swap(a, left, (left+right)/2);
last = left;
for(i = left+1; i <= right; i++)
if(a[i] < a[left])
swap(a, ++last, i);
swap(a, left, last);
qsort(a, left, last-1);
qsort(a, last+1, right);
}
int main(){
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
int i, n;
unsigned a[500000];
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%u", a+i);
qsort(a, 0, n-1);
for(i = 0; i < n; i++)
printf("%u ", a[i]);
printf("\n");
}