Pagini recente » Cod sursa (job #2248433) | Cod sursa (job #1634893) | Cod sursa (job #2046627) | Cod sursa (job #1585022) | Cod sursa (job #742033)
Cod sursa(job #742033)
#include<fstream>
#include<ctime>
#include<cstdlib>
using namespace std;
int n,v[500005],x[500005],c[257],ind[257];
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void citire()
{
fin>>n;
for( int i=0; i<n; i++)
fin>>v[i];
}
void afisare()
{
for(int i=0; i<n; i++)
fout<<v[i]<<" ";
fout<<"\n";
}
void radix(int a[], int b[], int byte)
{
int i,lm=255;
memset(c,0,sizeof(c));
for(i=0;i<n;++i)
c[(a[i]>>byte)&lm]++;
for(i=0;i<256;++i)
ind[i]=ind[i-1]+c[i-1];
for(i=0;i<n;++i)
b[ind[(a[i]>>byte)&lm]++]=a[i];
}
int main()
{
citire();
radix(v,x,0);
radix(x,v,8);
radix(v,x,16);
radix(x,v,24);
afisare();
}