package TestFunctions;
import java.util.Arrays;
public class RadixSort {
static int M=10;
public static void main(String[] args)
{
int[] member= {12,2,34,204,500,6,37,89,159,10};
radixSort(member);
for(int i=0;i<=9;i++)
System.out.println(member[i]);
}
public static void radixSort(int[] member)
{
int dig,k=0,l=0,m=0,i,j;
int [][] array =new int [10] [10];
int [] substitute =new int [10];
Arrays.fill(substitute,0);
Arrays.fill(array,substitute);
for(i=1;i<=M;i++)
{
for(j=0;j<=9;j++)
{
dig=digit(member[j],i);
for(k=0;array[dig][k]!=0;k++)
array[dig][k]=member[j];
}
l=0;
for(m=0;m<=9;m++)
{
for(k=0;array[m][k]!=0;k++)
member[l++]=array[m][k];
}
Arrays.fill(array, 0);
}
}
public static int digit(int mem,int i)
{
while(i>1) {
mem/=10;
i--;
}
return mem%10;
}
}
基数排序不知道哪里有问题,请求更正