/*
输入20个数字的4位数基数排序
*/
#include <stdio.h>
int S[10][21]; //用来装牌的容器int main()
{
int data[20]; //数据
for(int i=0;i<=19;i++)
{
scanf("%d",&data[i]);
}
int d=1;
for(int r=1;r<=4;r++)
{
d=d*10;
//发牌
for(int i = 19;i>=0;i--)
{
int tmp = 10*data[i]/d%10;
S[tmp][0]++;
S[tmp][S[tmp][0]] = data[i];
}
//收牌
int sign = 0;
for(int k=0;k<=9;k++)
{
while(S[k][0])
{
data[sign++] = S[k][S[k][0]];
S[k][0]--;
}
}
}
for(int i=0;i<=19;i++)
{
printf("%d ",data[i]);
}
return 0;
}
//时间复杂度是kn