#include <stdio.h>
#define digit 4 //几位数字,随便设置
#define bucket_size 10 //每个桶的容量
int number(int s,int i)
{
int k = 0,p;
int cs;
p=s;
for(cs=0;cs<=i;cs++)
{
k=p%10;
p=(p-k)/10;
}
return k;
}
int LSD_sort(int s[],int length)
{
int i,j,num,p,k;
int bucket[10][bucket_size];
for(i=0;i<digit;i++)
{
p=0;
int bucket_num[10]={0,0,0,0,0,0,0,0,0,0};
for (k=0;k<10;k++)
{
for (j=0;j<bucket_size;j++)
{
bucket[k][j]=0;
}
}
for(j=0;j<length;j++)
{
num=number(s[j],i);
bucket[num][bucket_num[num]]=s[j];
bucket_num[num]++;
}
for (j=0;j<10;j++)
{
int t=0;
while(bucket_num[j]!=0)
{
s[p]=bucket[j][t];
t++;
p++;
bucket_num[j]--;
}
}
}
return *s;
}