Pagini recente » Cod sursa (job #1226471) | Cod sursa (job #1593176) | Cod sursa (job #1593182) | Cod sursa (job #2571262) | Cod sursa (job #1223365)
#include <cstdio>
#include <vector>
#include <algorithm>
#define MASK 255
using namespace std;
int N;
vector<int> V;
void Sort(vector<int>&V,int disp)
{
vector<int> bucket[256];
for(int i = 0; i < (int)V.size(); ++i)
bucket[(V[i]>>disp) & MASK ].push_back(V[i]);
for(int i = 0,pz = 0; i <= 255; ++i)
for(int j = 0; j < (int) bucket[i].size(); ++j,++pz)
V[pz] = bucket[i][j];
}
void read()
{
scanf("%d",&N);
int b;
for(int i = 1; i <= N; ++i){
scanf("%d",&b);
V.push_back(b);
}
}
void Bucket()
{
for(int i = 0; i < 32; i += 8)
Sort(V,i);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
read();
Bucket();
for(int i = 0; i < N; ++i )
printf("%d ",V[i]);
return 0;
}