博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java数据结构和算法-基数排序
阅读量:2443 次
发布时间:2019-05-10

本文共 1071 字,大约阅读时间需要 3 分钟。

基数排序:

基数排序(Radix Sort)是桶排序的扩展,它的基本思想是:将整数按位数切割成不同的数字,然后按每个位数分别比较。

具体做法是:将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。

步骤:首先求出该序列最高位数,例如本例最高位百位,计数count=3

1. 按照个位数进行排序。

2. 按照十位数进行排序。
3. 按照百位数进行排序。
排序后,数列就变成了一个有序序列。

基数排序Java实现:

package com.algorithm.sort;import java.util.ArrayList;public class BasicSort {    public static void main(String[] args) {        int[] a={34,2,4,5,7,45,44,12,145,347,47,556,78,67,55,89,10,23};        basicSort(a);        for(int num:a){            System.out.print(" "+num);        }    }    private static void basicSort(int[] a) {        int max=0;        int count=0;        //求该数组最大数,以便求出最大位数        for(int i=0;i
listOut=new ArrayList
(); for(int i=0;i<10;i++){ ArrayList listInner=new ArrayList(); listOut.add(listInner); } for(int i=0;i
0){//注意循环 a[c++]=(int)listOut.get(m).remove(0); } } } }}输出: 2 4 5 7 10 12 23 34 44 45 47 55 67 78 89 145 347 556

各种排序时间复杂度总结:

你可能感兴趣的文章
Chrome 27的新功能
查看>>
浏览器趋势(2013年5月):IE8降至10%以下
查看>>
谁偷了我的CPU?
查看>>
Microsoft将IE10更新推送到Windows 7
查看>>
liferay_云中的Liferay
查看>>
SQL或NoSQL:Google App Engine-第1部分
查看>>
SitePoint Podcast#178:Web设计过程和创造力
查看>>
移动端获取视频第一帧移动端_后端即服务-第1部分
查看>>
畅谈理想未来为主题的铅笔画_与专家畅谈Node.js
查看>>
SitePoint Podcast#173:释放混乱的猴子
查看>>
php 查询成绩_与专家讨论PHP: 成绩单
查看>>
一年新的一年_一年的云创新
查看>>
使用PHP从Access数据库中提取对象,第2部分
查看>>
openbiz_Openbiz Cubi:健壮PHP应用程序框架,第1部分
查看>>
使用PHP从Access数据库中提取对象,第1部分
查看>>
使用云waf的案例_9种流行的云使用案例
查看>>
类集合转换类集合_PHP中的集合类
查看>>
使用SimplePie消费Feed
查看>>
运算符二进制_基本转换和二进制运算符
查看>>
SitePoint播客#121:在线社区圆桌会议第2部分
查看>>