Java 排序之 基数排序

来源:互联网 发布:局域网网速控制软件 编辑:程序博客网 时间:2024/05/21 09:55

基数排序

从低到高按位排序,并采用稳定算法排序。复杂度O(dn)

  public  void radixSort(int[] number, int d) {//d表示最大的数有多少位        int k=0;        int n=1;        int m=1;//控制键值排序依据在哪一位        int[][] temp = new int[10][number.length];//数组的第一维表示可能的余数0-9        int[] order = new int[10];//数组orderp[i]用来表示该位是i的数的个数        while(m <= d) {            for(int i = 0; i < number.length; i++) {                int lsd = ((number[i] / n) % 10);                temp[lsd][order[lsd]] = number[i];                order[lsd]++;            }            for(int i = 0; i < 10; i++) {                if(order[i] != 0)                    for(int j = 0; j < order[i]; j++) {                        number[k] = temp[i][j];                        k++;                    }                order[i] = 0;            }            n *= 10;            k = 0;            m++;        }    }



0 0
原创粉丝点击