Pagini recente » Cod sursa (job #1880001) | Cod sursa (job #1868641) | Cod sursa (job #1908491) | Cod sursa (job #2146061) | Cod sursa (job #658270)
Cod sursa(job #658270)
#include <cstdio>
#include <deque>
#include <vector>
using namespace std;
#define file_in "algsort.in"
#define file_out "algsort.out"
#define mod (1<<10)
#define nmax 501000
deque<int> B[mod];
int V[nmax];
int N,i,j,p,maxx;
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d", &N);
maxx=0;
for (i=1;i<=N;++i){
scanf("%d", &V[i]);
maxx=max(maxx,V[i]);
}
p=0;
while(maxx){
for (i=1;i<=N;++i)
B[(V[i]>>p)&(mod-1)].push_back(V[i]);
i=0;
for (j=0;j<mod;++j){
while(!B[j].empty()){
V[++i]=B[j].front();
B[j].pop_front();
}
}
p+=10;
maxx>>=10;
}
for (i=1;i<=N;++i)
printf("%d ", V[i]);
return 0;
}