zoukankan      html  css  js  c++  java
  • 基数排序(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++;
            }
  • 相关阅读:
    查找链表中是否有环linked-list-cycle
    reverse-integer
    AVL树之 Java的实现
    single-number
    Best Time to Buy and Sell Stock II
    maximun-depth-of-binary-tree
    minimun-depth-of-binary-tree
    剑指offer--矩阵中的路径
    grep的几个参数
    fsck和badlocks
  • 原文地址:https://www.cnblogs.com/hithlb/p/3599593.html
Copyright © 2011-2022 走看看