基数排序(java实现)

基数排序  就是先比较数组中元素的个位数,排序得到新的数组,然后比较新的数组中的十位数,排序得到新数组,然后再对最新得到的数组比较百位数.......依次循环

比如{82 ,31 ,29 ,71, 72, 42, 64, 5,110} 比较个位数 排序  得到新数列{110,31,71,82,72,42,64,5,29} 然后对新数列比较十位数{110,29,31,42,64,71,72,82}  然后比较百位数,没有百位数的算作0,所以得到{29,31,42,64,71,72,82,110}

代码如下:

//基数排序  arrays是需要排序的数组
        List<Integer> list = new ArrayList<>();//辅助存储
        int sortTimes = 0;
        boolean flag = true;
        while(flag){
            flag = false;
            for(int i = 0;i<=9;i++){
                for(int index = 0; index<arrays.length; index++){
                    if(getNumber(arrays[index],sortTimes) == i){
                        list.add(arrays[index]);
                    }
                    if(arrays[index]/(int) Math.pow(10,index+1)!=0){
                        flag = true;
                    }
                }
            }
            for(int i = 0; i<list.size();i++){
                arrays[i] = list.get(i);
            }
            list.clear();
            sortTimes++;
        }

基数排序(java实现),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。