Pagini recente » Cod sursa (job #1439659) | Cod sursa (job #1611908) | Cod sursa (job #2583674) | Cod sursa (job #3146698) | Cod sursa (job #2275317)
#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;
}