Cod sursa(job #1315760)

Utilizator SorinmocanuFMI Sorin Mocanu Sorinmocanu Data 13 ianuarie 2015 02:30:06
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include<fstream>
using namespace std;
int n,v[500005],y[10][500005],z[9];
    ifstream f("algsort.in");
    ofstream g("algsort.out");
void radixsort(int o,int n)
{
    int i,j,k,e=1,l,m;
    for(i=1;i<=o;i++)
    {
        for(j=1;j<=9;j++) z[j]=0;
        l=1;
        for(j=1;j<=n;j++)
            {m=v[j]/e%10; if(m==0) {v[l]=v[j];l++;} else
            {z[m]++;
            y[m][z[m]]=v[j]; }}

        for(j=1;j<=9;j++)
            for(k=1;k<=z[j];k++)
            {v[l]=y[j][k];l++;}
        e=e*10;}
}

int main()
{

    int i,j=0,c=0;
    f>>n;
    for(i=1;i<=n;i++) {f>>v[i];if(v[i]>c) c=v[i];}

    while(c>0) {j++; c=c/10;}

    radixsort(j,n);

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

    f.close();
    g.close();
    return 0;
    }