当前位置: 首页 > news >正文

使用Java实现基数排序算法

文章目录

    • 基数排序算法

基数排序算法

(1)基本思想:将整数按位数切割成不同的数字,然后按每个位数分别比较。

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

(3)代码示例:

/**
 * 基数排序
 * @param number 待排序的数组
 * @param d 表示最大的数有多少位
 */
public static void sort(int[] number, int d) 
{
    int k = 0;
    int n = 1;
    int m = 1; //控制键值排序依据在哪一位
    int[][] temp = new int[10][number.length]; //数组的第一维表示可能的余数0-9
    int[] order = new int[10]; //数组order[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++;
    }
}

相关文章:

  • Windows 和 MacOS 上安装配置ADB(安卓调试桥)
  • 【人生苦短,我学 Python】(5)集合数据类型(set、frozenset)
  • 【小沐学Python】Python实现TTS文本转语音(speech、pyttsx3、百度AI)
  • 理解基于 Hadoop 生态的大数据技术架构
  • c++学习之异常
  • 18.Java程序设计-基于Springboot的电影院售票系统的设计与实现
  • 论文阅读——Deformable ConvNets v2
  • 详细介绍开源固件-TF-A
  • 学习 Vue 3 源码
  • ES6与ES5的区别?
  • 文心一言API(高级版)使用
  • 【计算机网络】期末复习第一章
  • Metasploit渗透测试的漏洞利用和攻击方法
  • 五花八门客户问题(BUG) - 数据库索引损坏
  • docker镜像仓库hub.docker.com无法访问
  • 本地搭建Linux DataEase数据可视化分析工具并实现公网访问
  • 举例说明自然语言处理(NLP)技术。
  • 汽车网络安全--ISO\SAE 21434解析(一)
  • AI:大语言模型训练方法 - 机器学习
  • LLMs 应用程序的构建利器:LangChain 助您驰骋 AI 世界 | 开源日报 No.100
  • 阚吉林任重庆市民政局党组书记,原任市委组织部主持日常工作的副部长
  • 上海国际电影节推出三大官方推荐单元,精选十部优秀影片
  • 云南一餐馆收购长江野生鱼加工为菜品,被查处罚款
  • 中国天主教组织发贺电对新教皇当选表示祝贺
  • 中美“第二阶段”贸易协定是否会在会谈中提出?商务部回应
  • 对话哭泣照被恶意盗用成“高潮针”配图女生:难过又屈辱