Cod sursa(job #1719829)

Utilizator retrogradLucian Bicsi retrograd Data 20 iunie 2016 14:22:51
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <bits/stdc++.h>

using namespace std;

void MergeSort(vector<int> &V) {
	int n = V.size();

	while(V.size() != (V.size() & -V.size()))
		V.push_back(numeric_limits<int>::max());

	for(int i = 1; i < V.size(); i <<= 1) {
		for(auto b = V.begin(); b != V.end(); advance(b, i + i)) {
			auto m = b + i;
			auto e = m + i;

			inplace_merge(b, m, e);
		}
	}

	V.resize(n);
}

int main() {
	freopen("algsort.in", "r", stdin);
	freopen("algsort.out", "w", stdout);

	int n;
	cin >> n;

	vector<int> V(n);
	for(auto &v : V)
		cin >> v;
	
	MergeSort(V);
	
	for(auto &v : V)
		cout << v << " ";

	return 0;
}