首页 > 应用开发 > Java > 好程序员Java学习路线分享5分钟了解基数排序
好程序员 Java 学习路线分享 5 分钟了解基数排序, 前言: 基数排序无需进行比较和交换,而是利用分配和收集两种基本操作实现排序。基数排序分为两种:第一种是 LSD ,从最低位开始排序;第二种是 MSD , 从最高位开始排序。
2. 收集:在一趟排序完成后,我们按顺序从 0-9 的桶中依次取元素。
3. 继续进行分配和收集,直到最大位数排序完成。
算法说明:
待排序数据: 12, 34, 2, 123, 25, 59, 37
采用 LSD ,从低位开始排序
第一轮:取个位数,放入对应的桶,比如 12 的个位数是 2 ,放到 2 号桶; 34 的个位数是 4 ,放到 4 号桶
第一轮后,得到数据: 12, 2, 123, 34, 25, 37, 59
第二轮:取十位数,放入桶中。比如 2 ,十位数是 ,放到 号桶
第二轮后,得到数据: 2, 12, 123, 25, 34, 37, 59
第三轮:取百位数,放入桶
最后,得到有序数据 2, 12, 25, 34, 37, 59, 123
基数排序是一种按记录关键字的各位值逐步进行排序的方法。一般适用于记录的关键字为整数类型的情况,对于字符串和文字排序不适合。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913892/viewspace-2652971/ ,如需转载,请注明出处,否则将追究法律责任。