Cod sursa(job #1668187)

Utilizator dorumusuroiFMI - Doru Musuroi dorumusuroi Data 29 martie 2016 17:00:19
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <bits/stdc++.h>
using namespace std;

vector<int> buckets[10];
vector<int> data;

bool check_sorted(vector<int> data){
    for(unsigned int i = 0; i < data.size() - 1; ++i)
        if(data[i] > data[i+1])
            return false;

    return true;
}

int main()
{

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

    int sz;

    cin >> sz;

    int x;
    for(int i = 0; i < sz; ++i){
        cin >> x;
        data.push_back(x);
    }

    int ten = 1;
    int iters = 10;

    for(int k = 0; k < iters; ++k){
        for(int val : data){
            buckets[(val/ten)%10].push_back(val);
        }
        ten *= 10;
        int cnt = 0;

        for(int i = 0; i < 10; ++i){
            for(int j = 0; j < buckets[i].size(); ++j){
               data[cnt++] = buckets[i][j];
            }
        }

        for(int i = 0; i < 10; ++i)
            buckets[i].clear();
    }

    for(int i = 0; i < sz; ++i)
        cout << data[i] << ' ';

    return 0;
}