Pagini recente » Cod sursa (job #579227) | Cod sursa (job #2513608) | Cod sursa (job #2345463) | Cod sursa (job #2061110) | Cod sursa (job #3261204)
#include <bits/stdc++.h>
using namespace std;
int n, v[500002], aux[500002];
void mergeSort (int st, int dr) {
if (st == dr) {
return;
}
int mij = (st + dr) / 2;
mergeSort(st, mij);
mergeSort (mij + 1, dr);
int i= st, j = mij + 1, k = 0;
while (i <= mij && j <= dr) {
if (v[i] < v[j]) {
aux[++k] = v[i];
++i;
} else {
aux[++k] = v[j];
++j;
}
}
while (i <= mij) {
aux[++k] = v[i];
++i;
}
while (j <= dr) {
aux[++k] = v[j];
++j;
}
for (int i = 1; i <= k; ++i) {
v[st + i - 1] = aux[i];
}
}
int main() {
ifstream cin ("algsort.in");
ofstream cout ("algsort.out");
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> v[i];
}
mergeSort(1, n);
for (int i = 1; i <= n; ++i) {
cout << v[i] << " ";
}
return 0;
}