您的位置:首页 > 其它

基数排序

2016-03-01 21:57 295 查看
对各个位置上的数,按分别按个位排序,倒入桶中,然后倒出后,按十位排序。。。。
public class RadixSort {
public int[] radixSort(int[] A, int n) {
// write code here
List<List<Integer>> radixList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
radixList.add(i, new ArrayList<Integer>());
}
for(int i = 1; i<=4;i++){  //数字为0~10000 此i为从个位起的第i位数
for(int j =0; j< n ;j++){
int tmp =(int) (A[j]/(Math.pow(10,i-1))) %10;  //第i位的 数值
radixList.get(tmp).add(A[j]);
}
int index = 0;

for (int k = 0; k < 10; k++) {
while(radixList.get(k).size()!=0){
A[index++] = radixList.get(k).get(0);
radixList.get(k).remove(0);
}
}
}
return A;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: