Pagini recente » Cod sursa (job #335171) | Cod sursa (job #2847859) | Cod sursa (job #2055292) | Cod sursa (job #2422582) | Cod sursa (job #339390)
Cod sursa(job #339390)
#include <cstdio>
#include <cstring>
#define N 500001
int a1[N],a2[N];
int main()
{
int j,n,max=0,k1,k2;
long long i;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for (i=1; i<=n; i++)
{
scanf("%d",&a1[i]);
if (a1[i]>max) max=a1[i];
}
for (i=1; i<=max; i<<=1)
{
k1=k2=0;
for (j=1; j<=n; j++)
if (a1[j]&i) a2[++k2]=a1[j];
else a1[++k1]=a1[j];
for (j=1; j<=k2; j++) a1[k1+j]=a2[j];
}
for (i=1; i<=n; i++) printf("%d ",a1[i]);
return 0;
}