Pagini recente » Cod sursa (job #828477) | Cod sursa (job #1815168) | Cod sursa (job #176128) | Cod sursa (job #411422) | Cod sursa (job #1716840)
#include <iostream>
#include <fstream>
#include <vector>
#include <utility>
using namespace std;
int N;
vector<int> v;
void Read();
void Write();
void qSort(int left, int right);
int main()
{
Read();
qSort(1, N);
Write();
return 0;
}
void qSort(int left, int right) {
if(left >= right)
return;
int piv = v[(left + right) / 2];
int i = left, j = right;
while(i <= j) {
while(v[i] < piv)
i++;
while(v[j] > piv)
j--;
if(i <= j) {
swap(v[i], v[j]);
i++;
j--;
}
}
qSort(left, j);
qSort(i, right);
}
void Write() {
for(int i = 1; i <= N; ++i)
cout << v[i] << ' ';
cout << '\n';
}
void Read() {
freopen("algsort.in", "rt", stdin);
freopen("algsort.out", "wt", stdout);
scanf("%d", &N);
v.assign(N+2, 0);
for(int i = 1; i <= N; ++i)
scanf("%d", &v[i]);
}