Pagini recente » Cod sursa (job #2023230) | Cod sursa (job #761467)
Cod sursa(job #761467)
#include <cstdio>
using namespace std;
int partition(int st, int dr, int* A) {
int x = A[dr];
int j = st;
for(int i = st; i < dr; i++) {
if(A[i] < x) {
int aux = A[i];
A[i] = A[j];
A[j] = aux;
j++;
}
}
int aux = A[j];
A[j] = x;
A[dr] = aux;
return j;
}
int qsort(int st, int dr, int* A) {
if(st < dr) {
int p = partition(st, dr, A);
qsort(st, p - 1, A);
qsort(p + 1, dr, A);
}
}
int main()
{
int A[500005];
int n;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d", &n);
for(int i = 1; i <= n; i++)
scanf("%d",&A[i]);
qsort(1, n, A);
for(int i = 1; i <= n; i++)
printf("%d ",A[i]);
return 0;
}