Pagini recente » Cod sursa (job #842033) | Cod sursa (job #1812699) | Cod sursa (job #1073865) | Cod sursa (job #2188522) | Cod sursa (job #332119)
Cod sursa(job #332119)
#include <cstdio>
#include <cstdlib>
#include <cstring>
void swap(int &a,int &b) {
int aux = a; a = b; b = aux;
}
void qsort(int *A,int l,int r) {
while(l < r) {
int p = A[l + rand() % (r - l + 1)], i = l - 1, j = r + 1;
while(i <= j) {
do i++; while( i <= r && A[i] < p );
do j--; while( j >= l && A[j] > p );
if(i < j)
swap(A[i],A[j]);
}
qsort(A,l,j);
l = i;
}
}
int main() {
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int *A,N;
scanf("%d",&N);
A = (int*)calloc(N,sizeof(int));
for(int i=0;i<N;++i) scanf("%d",&A[i]);
qsort(A,0,N - 1);
for(int i=0;i<N;++i) printf("%d ",A[i]);
return 0;
}