Cod sursa(job #2184387)

Utilizator Alexandra06Pribagu Alexandra Alexandra06 Data 24 martie 2018 00:18:23
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("radixsort.in");
ofstream g("radixsort.out");

int main()
{
    int n, ar[50], i, max=-1, p=1, d[10], j, grupe[50][50], k=0, c;
    f>>n;
    for(i=1; i<=n; i++) {f>>ar[i];
                         if(max<ar[i]) max=ar[i];}

    while(max) {k++;
                max/=10;}

    for(int pas=1; pas<=k; pas++)
    {
        for(j=0; j<=9; j++)
            d[j]=0;
        for(j=1; j<=n; j++)
        {
            c=ar[j]/p%10;
            d[c]++;
            grupe[c][d[c]]=ar[j];
        }
        n=0;
        for(i=0; i<10; i++)
            for(j=1; j<=d[i]; j++) ar[++n]=grupe[i][j];

        p*=10;
    }


    for(i=1; i<=n; i++)
        g << ar[i] << " ";

    f.close();
    g.close();

    return 0;
}