Pagini recente » Cod sursa (job #129825) | Cod sursa (job #132356) | Cod sursa (job #1769932) | Profil Saitama | Cod sursa (job #1602389)
#include <iostream>
#include <fstream>
#include <cstring>
#define ll long long
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,a,b,c,v[500005],v2[500005],ap[260],s[260];
void Radix(int b1)
{ int i;
memset(ap,0,sizeof(ap));
for(i=1;i<=n;i++)
ap[(v[i]>>b1)&255]++;
s[0]=ap[0];
for(i=1;i<=255;i++)
s[i]=s[i-1]+ap[i];
for(i=n;i>=1;i--)
{ v2[s[((v[i]>>b1)&255)-1]+ap[((v[i]>>b1)&255)]]=v[i];
ap[((v[i]>>b1)&255)]--;
}
for(i=1;i<=n;i++)
v[i]=v2[i];
}
int main()
{ int i;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
for(i=0;i<32;i+=8)
Radix(i);
for(i=1;i<=n;i++)
g<<v[i]<<" ";
return 0;
}