标签:
参考文章:http://www.cnblogs.com/Braveliu/archive/2013/01/21/2870201.html
import java.util.Arrays;
public class RadixSortMy
{
public static void sort(int[] data, int maxLength) //d表示最大的数有多少位
{
int currentUnit = 0; //控制键值排序依据在哪一位
int k=0;
int[][] temp=new int[10][data.length];
int[]order = new int[10]; //数组order[i]用来表示该位是i的数的个数
while(currentUnit<= maxLength)
{
for(int i = 0;i<data.length;i++)
{
int intowoodenNumber = (data[i] / (int)Math.pow(10,currentUnit)) % 10;
temp[intowoodenNumber][order[intowoodenNumber]] = data[i];
order[intowoodenNumber]++;
}
for(int i=0;i<order.length;i++)
{
if(order[i]!=0)
{
for(int j=0;j<order[i];j++)
{
data[k++]=temp[i][j];
}
order[i]=0;
}
}
k=0;
currentUnit++;
}
}
public static void main(String[] args)
{
int[] data ={73, 22, 93, 43, 55, 14, 28, 65, 39,123,81};
RadixSortMy.sort(data, 3);
System.out.println(Arrays.toString(data));
}
}
标签:
原文地址:http://www.cnblogs.com/sweetculiji/p/4678463.html