转载至:https://www.61mon.com/index.php/page/3/
#include<iostream>
using namespace std;
int a[10],n;
void init()
{
for(int i=0;i<n;i++)
cin>>a[i];
}
void print()
{
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
}
int getfigit(int x,int d)
{
int num=1;
for(int i=0;i<d;i++)
num*=10;
return (x/num)%10;
}
void isdraadix_sort(int arr[],int begin,int end,int d)
{
const int radix=10;
int count[radix],i,j;
int b[10]=new (int);
for(int k=1;k<=d;k++) //每一位数的 排序
{
for(i=0;i<radix;i++)//每个位存的数为空
count[i]=0;
for(i=begin;i<=end;i++)
count[getdigit(arr[i],k)]++; //统计该数字出现的次数?
for(i=1;i<radix;i++)
count[i]=count[i]+count[i-1];
for(i=end;i>=begin;i--)
{
j=getdigit(arr[i],k);
bucket[count[j]-1]=arr[i];
--count[j];//对应桶的装入数据索引减一
}
int main()
{
cin>>n;
init();
print();
lsdradix(a,0,n,3);
return 0;
}