Cod sursa(job #3030979)

Utilizator TirilaPatricTirila Patric-Gabriel TirilaPatric Data 18 martie 2023 10:11:41
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

vector<int> sortare(vector<int> V){
    vector<vector<int>> bins(1000);
    long i = 1;
    int n;
    int ok = 1;
    while(ok){
        ok = 0;
        for(int j=0; j<1000; j++){
            bins[j] = {};
        }
        for(int j=0; j<V.size(); j++){
            if ((V[j]/i) > 999) {
                ok = 1;
            }
            n = (V[j]/i) % 1000;
            bins[n].push_back(V[j]);
        }
        V.clear();

        for(int j=0; j<bins.size(); j++){
            for(int k=0; k<bins[j].size(); k++){
                V.push_back(bins[j][k]);
            }
        }
        i*=1000;
    }
    return V;
}

int main(){
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    vector<int> V;
    int a, N;
    f>>N;
    while(N>0){
        f>>a;
        V.push_back(a);
        N--;
    }
    V = sortare(V);
    for(int i=0; i<V.size(); i++){
        g<<V[i];
    }
    return 0;
}