Cod sursa(job #1315743)

Utilizator SorinmocanuFMI Sorin Mocanu Sorinmocanu Data 13 ianuarie 2015 01:22:25
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include<fstream>
using namespace std;
#define maxn 10000007
unsigned int n,v[maxn],y[10][maxn],z[9];
    ifstream f("algsort.in");
    ofstream g("algsort.out");
void radixsort(unsigned int o,unsigned int n)
{
    unsigned int i,j,k,d=10,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]%d/e; 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;d=d*10;}
}

int main()
{

    unsigned 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;
    }