Cod sursa(job #2272668)

Utilizator livliviLivia Magureanu livlivi Data 30 octombrie 2018 16:01:16
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
#include<vector>
#define B 31
using namespace std;

ifstream cin("algsort.in");
ofstream cout("algsort.out");

vector<int> radix(vector<int> v){
	for(int i = 0; i < B; i++){
		vector<int> aux[2];

		for(int j = 0; j < v.size(); j++)
			aux[(v[j] >> i) & 1].push_back(v[j]);

		v.erase(v.begin(), v.end());
		v = aux[0];

		for(int j = 0; j < aux[1].size(); j++)
			v.push_back(aux[1][j]);
	}

	return v;
}

int main(){
	int n;
	cin>>n;

	vector<int> v;
	for(int i = 0; i < n; i++){
		int x;
		cin>>x;

		v.push_back(x);
	}

	v = radix(v);

	for(int i = 0; i < v.size(); i++)
		cout<<v[i]<<' ';
	cout<<endl;

	return 0;
}