Cod sursa(job #2294849)

Utilizator dianamichesaRosu Diana Michesa dianamichesa Data 2 decembrie 2018 21:14:09
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
const int N = 500001;
vector <int> a[10];
int n, v[N], cnt[11];
void afisare () {
    for(int  i = 1; i <= n; i ++)
        g << v[i] << ' ';
    g << '\n ';
}
void radixsort (int k) {
    int x = 0;
    for(int i = 1; i <= n; i ++) {
        int cif = (v[i] / k) % 10;
        a[cif].push_back(v[i]);
        cnt[cif] ++;
    }
    for(int  c = 0; c <= 9; c ++) {
        for(int  i = 0; i < cnt[c]; i ++)
            v[++ x] = a[c][i];
        cnt[c] = 0;
    }
    if(k <= 1e9)
        radixsort (k * 10);
}
int main()
{
    f >> n;
    for(int  i = 1; i <= n; i ++)
        f >> v[i];
    radixsort (1);
    for(int  i = 1; i <= n; i ++)
        g << v[i] << ' ';
    return 0;
}