Merge_sort
#include "bits/stdc++.h"
using namespace std;
const int N = 1e5 + 10;
int n;
int a[N];
void merge(int l, int mid, int r) {
vector v;
int i = l, j = mid + 1;
while(i <= mid && j <= r) {
if(a[i] < a[j]) {
v.push_back(a[i]);
i++;
}
else {
v.push_back(a[j]);
j++;
}
}
while(i <= mid) {
v.push_back(a[i]);
i++;
}
while(j <= r) {
v.push_back(a[j]);
j++;
}
for(i = l, j = 0; i <= r; i++, j++) {
a[i] = v[j];
}
}
void merge_sort(int l, int r) {
if(l == r) return;
int mid = (l + r) >> 1;
merge_sort(l, mid);
merge_sort(mid + 1, r);
merge(l, mid, r);
}
int main() {
cin>>n;
for(int i = 1; i <= n; i++) {
cin>>a[i];
}
merge_sort(1, n);
for(int i = 1; i <= n; i++) cout<