Cod sursa(job #2076450)

Utilizator Andrei243Nitu Mandel Andrei Andrei243 Data 26 noiembrie 2017 16:50:25
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <limits.h>
using namespace std;

queue<int> radix[10];
queue<int> vector_sort;
ofstream out("algsort.out");



int main()
{

        ifstream in("algsort.in");


        int n;
        in>>n;
        int x;
        int maxim=INT_MIN;
        for(int i=0; i<n; i++)
        {
            in>>x;
            vector_sort.push(x);
            if(x>maxim)maxim=x;
        }

        for(int i=1; maxim/i>0; i*=10)
        {

            int x;
            while(vector_sort.size())
            {
                x=vector_sort.front();
                vector_sort.pop();

                radix[(x/i)%10].push(x);
            }
            for(i=0; i<10; i++)
            {


                while(radix[i].size()>0)
                {
                    x=radix[i].front();
                    radix[i].pop();
                    vector_sort.push(x);
                }





            }



        }





while(vector_sort.size())
{
    int x=vector_sort.front();
    out<<x<<' ';
    vector_sort.pop();


}

return 0;
}