美文网首页
基数排序LSD

基数排序LSD

作者: 灵魂歌手麦克李 | 来源:发表于2018-12-14 13:31 被阅读0次

基数排序LSD

概述:

根据成员的个位数存入到有序的容器中,然后按照顺序从容器取出,之后再根据十位存入,再取出,直到成员的最大位数,得到从小到大有序。

场景分析:

21,54,87,451,12,354,61,3,64

根据成员的个位数存入到有序的容器中,

2|1,45|1,6|1,1|2,|3,5|4,35|4,6|4,8|7

然后按照顺序从容器中取出,

21,451,61,12,3,54,354,64,87

之后再根据十位存入,

03,12,21,451,54,354,61,64,87

再取出,

3,12,21,451,54,354,61,64,87

直到成员的最大位数。

003,012,021,054,061,064,087,354,451

取出

得到从小到大有序

3,12,21,54,61,64,87,354,451

JAVA实现:

package Sorts;

public class RadixSort {

        public static void main(String[] args) {

            int[] array = {512,4431,312,20,1};

            lsdSort(array,4);

          for (int i = 0; i < array.length; i++) {

                System.out.println(array[i]+",");

            }

        }

    public static void lsdSort(int[] array, int maxlength) {

          int k = 0;

          int m = 1;

          int n = 1;

        //有序的容器,

        int[][] temp = new int[10][array.length];

        int[] order = new int[10];

       //直到成员的最大位数,

        while(m <= maxlength) {

            for (int i = 0; i < array.length; i++) {

                int lsd = ((array[i]/n) % 10);

                //根据成员的个位数存入到有序的容器中,

                temp[lsd][order[lsd]] = array[i];

                order[lsd]++;

            }

                //然后按照顺序从容器取出,

           for (int i = 0; i < 10; i++) {

                  if(order[i] != 0) {

                         for (int j = 0; j < order[i]; j++) {

                                array[k] =  temp[i][j];

                                k++;

                          }

                  }

            order[i] = 0;

         }

          k = 0;

            //之后再根据十位存入,再取出,

          n *= 10;

          m++;

         }

     }

}

相关文章

  • 基数排序LSD

    基数排序LSD 概述: 根据成员的个位数存入到有序的容器中,然后按照顺序从容器取出,之后再根据十位存入,再取出,直...

  • lsd

    昨晚开始筹划早上的跑步 最近没怎么跑长距离 刚刚开始的时候还是挺轻松的 十五公里后仍旧体力不错 但是补水的需求越来...

  • 基数排序(c++) to be continued

    [TOC] 参考 基数排序算法的实现与优化 clickhouse 实现的基数排序源码 基数排序的性能优化 Radi...

  • 数组-基数排序

    采用基数排序方式对数组进行排序 基数排序百科:基数排序排序(Distribution Sort),属于分配式排序,...

  • 跑步送年。

    明天拜年跑休,课表调整为150分钟LSD。 LSD也是一种轻松跑,只是它会更慢些,距离更长些。 LSD跑一般与E跑...

  • day12-基数排序

    基数排序 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”...

  • swift经典算法-基数排序

    基数排序算法 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子...

  • LSD及LSD项目的总结:

    LSD(linux system desine)中文名称是Linux程序设计 LSD的功能或者说作用就是用C语言编...

  • LSD笔记

    Learning-to-See-in-the-Dark-master 该项目实现了对于暗光环境下,使用高速快门和适...

  • php-计数排序、基数排序、桶排序

    计数排序、基数排序、桶排序 时间复杂度 O(n) 计数排序 基数排序 桶排序

网友评论

      本文标题:基数排序LSD

      本文链接:https://www.haomeiwen.com/subject/logwhqtx.html