Cod sursa(job #2275317)

Utilizator cameliapatileaPatilea Catalina Camelia cameliapatilea Data 3 noiembrie 2018 00:57:10
Problema Radix Sort Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include<fstream>
#include<iostream>
using namespace std;

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

int v[500002], w[500002], n, nr[260], index[260];

void frecventa(int x)
{
    int radix=255;
    int octet=x*8, i, aux;

    for (i=0;i<=255;i++)
        nr[i]=0;
    for (i=0;i<n;i++)
        nr[(v[i]>>octet)&radix]++;

    index[0]=0;
    for (i=1;i<=255;i++)
        index[i]=index[i-1]+nr[i-1];
    for (i=0;i<n;i++)
    {
        aux=(v[i] >> octet) & radix;
        w[index[aux]++] = v[i];
    }
    for (i=0;i<n;i++)
        v[i]=w[i];
}

void radixsort()
{
    int i;
    for (i=0; i<4; i++)
        frecventa(i);
}

int main()
{
    int i;
    f>>n;
    for (i=0;i<n;i++)
        f>>v[i];
    radixsort();
    for (i=0;i<n;i++)
        g<<v[i]<<" ";
    return 0;
}