Pagini recente » Cod sursa (job #1334965) | Cod sursa (job #1666404) | Cod sursa (job #898416) | Cod sursa (job #2166679) | Cod sursa (job #1845767)
#include <cstdio>
#include <cstring>
#include <iostream>
FILE* in=fopen("algsort.in","r");
FILE* out=fopen("algsort.out","w");
using namespace std;
int n,a,b,c;
const int Q=10000007;
unsigned int v[Q];
unsigned int aux[Q];
int cate[255];
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>v[i];
}
int go;
for(int k=0; k<32; k+=8)
{
memset(cate,0,sizeof cate);
for(int i=1; i<=n; i++)
{
go=((v[i])>>k)&255;
cate[go]++;
}
for(int i=1; i<256; i++)
cate[i]+=cate[i-1];
for(int i=255; i>0; i--)
{
cate[i]=cate[i-1];
}
cate[0]=0;
for(int i=1; i<=n; i++)
{
go=((v[i])>>k)&255;
aux[++cate[go]]=v[i];
}
for(int i=1; i<=n; i++)
{
v[i]=aux[i];
}
}
for(int i=1; i<=n; i+=1)
{
fprintf(out,"%d ",v[i]);
}
return 0;
}