Cod sursa(job #1938637)

Utilizator radu.leonardoThe Doctor radu.leonardo Data 24 martie 2017 22:46:02
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <bits/stdc++.h>
#define Bucket_size 8
using namespace std;
int n;
vector <unsigned int> V;

void radixsort(int bits)
{
    vector <unsigned int> Sorted_Bucket[(1<<Bucket_size)];

    for(auto it:V)  Sorted_Bucket[(it>>bits)&((1<<Bucket_size)-1)].push_back(it);

    for(int i=0,n=0; i<(1<<Bucket_size); ++i)
        for(auto it:Sorted_Bucket[i]) V[n++]=it;
}

int main()
{
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    int x;
    f>>n;
    for(int i=0; i<n; ++i)   f>>x,V.push_back(x);
    for(int i=0; i<32; i+=Bucket_size) radixsort(i);
    for(auto it:V) g<<it<<" ";
}