Pagini recente » Cod sursa (job #194265) | Cod sursa (job #2287812) | Cod sursa (job #1977482) | Cod sursa (job #1382815) | Cod sursa (job #2619114)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int v[100000001],vect[100000001];
void countSort(int dim, int byte)
{
int fr[256] = {0},temp[256],i;
for(i=0; i<dim; i++)
{
++fr[(v[i] >> byte) & 255];
}
temp[0] = 0;
for (i = 1; i < 256; i++)
{
temp[i] = temp[i-1] + fr[i-1];
}
for(i=0; i<dim; i++)
{
vect[temp[(v[i] >> byte) & 255]++] = v[i];
}
for(i=0; i<dim; i++)
{
v[i] = vect[i];
}
}
void radixSort(int dim)
{
int i;
for(i=0; i<32; i+=8)
{
countSort(dim,i);
}
}
int main()
{
long long int n,a,b,c,i;
f>>n>>a>>b>>c;
v[0] = b;
for(i=1; i<n; i++)
{
v[i] = (a*v[i-1]+b)%c;
}
radixSort(n);
for(i=0; i<n; i+=10)
{
g<<v[i]<<" ";
}
return 0;
}