Pagini recente » Cod sursa (job #1819251) | Cod sursa (job #803241) | Cod sursa (job #2830902) | Cod sursa (job #634103) | Cod sursa (job #2988171)
#include <bits/stdc++.h>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n, a[500005];
void merge(int l, int r, int m, int v[]) {
int i = l, j = m + 1;
vector<int> aux;
int k = 1;
while (i <= m && j <= r) {
if (v[i] <= v[j]) aux.push_back(v[i++]);
else aux.push_back(v[j++]);
}
while (i <= m)
aux.push_back(v[i++]);
while (j <= r)
aux.push_back(v[j++]);
for (int i = 0; i < aux.size(); i++)
v[l + i] = aux[i];
}
void merge_sort(int l, int r, int v[]) {
if (l >= r) return;
int m = (l + r) / 2;
merge_sort(l, m, v);
merge_sort(m + 1, r, v);
merge(l, r, m, v);
}
int main() {
in>>n;
for (int i = 1; i <= n; i++)
in>>a[i];
merge_sort(1, n, a);
for (int i = 1; i <= n; i++)
out<<a[i]<<" ";
out<<'\n';
return 0;
}