Cod sursa(job #1014643)

Utilizator jul123Iulia Duta jul123 Data 22 octombrie 2013 23:03:49
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include<iostream>
#include<fstream>
using namespace std;
ofstream g("algsort.out");
void radix(int sortat[], int n)
{
    int maxi=0, i, exp, count[10], aux[100001];
    for(i=0;i<=9;i++)
        count[i]=0;
    for(i=0;i<n;i++)
        aux[i]=sortat[i];
    for(i=0;i<n;i++)
        if(sortat[i]>maxi)
            maxi=sortat[i];
    exp=1;
    while(maxi)
    {
        for(i=0;i<=9;i++)
            count[i]=0;
        for(i=0;i<n;i++)
            count[(sortat[i]/exp)%10]++;
        for(i=1;i<10;i++)
            count[i]+=count[i-1];
        for(i=n-1;i>=0;i--)
            {
            aux[--count[(sortat[i]/exp)%10]]=sortat[i];
            }
        for(i=0;i<n;i++)
            sortat[i]=aux[i];
        exp*=10;
        maxi/=10;
    }
     for(i=0;i<n;i++)
        g<<sortat[i]<<" ";
    g<<"\n";
    }


int main()
{
    int i, v[100001], n;
    ifstream f("algsort.in");

    f>>n;
    for(i=0;i<n;i++)
        f>>v[i];
    radix(v, n);
}