首页 > 编程语言 > 详细

基数排序(java实现)

时间:2014-03-14 18:05:29      阅读:467      评论:0      收藏:0      [点我收藏+]

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

比如{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}

代码如下:

bubuko.com,布布扣
//基数排序  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++;
        }
bubuko.com,布布扣

基数排序(java实现),布布扣,bubuko.com

基数排序(java实现)

原文:http://www.cnblogs.com/hithlb/p/3599593.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!