Pagini recente » Profil dornescuvlad | Cod sursa (job #2052130) | Cod sursa (job #504189) | Cod sursa (job #2153296) | Cod sursa (job #720952)
Cod sursa(job #720952)
#include<stdio.h>
#include<assert.h>
#include<algorithm>
#include<vector>
using namespace std;
const int knmax = 500005;
int elem, given[knmax];
void read(){
assert(freopen("algsort.in", "r", stdin) != NULL);
scanf("%d", &elem);
for(int i = 1; i <= elem; ++i)
scanf("%d", &given[i]);
}
void qu_sort(int left, int right){
if(left == right || left > right)
return;
if(right - left == 1){
if(given[left] > given[right])
swap(given[left], given[right]);
return;
}
int aux = given[(left + right) / 2], i, j;
for(i = left, j = right; i <= j; ++i)
while(given[i] > aux && j > i){
swap(given[i], given[j]);
--j;
}
qu_sort(left, i - 1);
qu_sort(i, right);
}
void solve(){
//random_shuffle(given + 1, given + elem + 1);
sort(given + 1, given + elem + 1);
//qu_sort(1, elem);
}
void write(){
assert(freopen("algsort.out", "w", stdout) != NULL);
for(int i = 1; i <= elem; ++i)
printf("%d ", given[i]);
}
int main(){
read();
solve();
write();
return 0;
}