Pagini recente » Cod sursa (job #2709222) | Cod sursa (job #1784179) | Cod sursa (job #1850029) | Cod sursa (job #2293361) | Cod sursa (job #1011268)
#include<stdio.h>
#include<stdlib.h>
struct point
{
int x;
point *y;
}*r[10],*p;
int n,i,j,x,mx,nr,v[500013],k;
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
mx=-1;
for(i=0;i<n;++i)
{
scanf("%d",&v[i]);
x=v[i];
nr=0;
while(x!=0)x/=10,++nr;
if(nr>mx)mx=nr;
}
for(j=0,nr=1;j<mx;++j,nr*=10)
{
for(i=n-1;i>=0;--i)
{
x=(v[i]/nr)%10;
p=new point;
p->x=v[i];
p->y=r[x];
r[x]=p;
}
for(i=k=0;i<10;++i)
while(r[i]!=NULL)
{
v[k++]=r[i]->x;
p=r[i];
r[i]=r[i]->y;
delete(p);
}
for(i=0;i<n;++i)printf("%d ",v[i]);
printf("\n");
}
return 0;
}