Pagini recente » Cod sursa (job #1785132) | Cod sursa (job #172859) | Istoria paginii runda/leitenten | Cod sursa (job #2387918) | Cod sursa (job #1493076)
#include <cstdio>
#define nmx 500002
using namespace std;
int n,v[nmx];
void read(){
scanf("%d", &n);
for(int i = 1; i <= n; ++i)
scanf("%d", &v[i]);
}
void qsort(int left, int right){
int pivot = left + (right - left) / 2, i = left, j = right;
while(i <= j){
while(v[i] < pivot)
++ i;
while(v[j] > pivot)
-- j;
if(i <= j){
v[i] = v[i] ^ v[j];
v[j] = v[i] ^ v[j];
v[i] = v[i] ^ v[j];
++ i;
-- j;
}
}
if(left < j)
qsort(left,j);
if(right > i)
qsort(i,right);
}
void output(){
for(int i = 1; i <= n; ++i)
printf("%d ", v[i]);
}
int main(){
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
read();
qsort(1,n);
output();
return 0;
}