JAVA语言之基数排序

2023-05-16

基数排序简而言之可以创建0~9余数共十个桶

代码如下:

public class jishu_1 {
public static void main(String[] args) {
int[] A=new int[]{54,35,48,36,27,12,44,44,8,14,26,17,28};
A=jishu_1.radixSort(A,13);
for(int i=0;i<13;i++){
System.out.print(A[i]+" ");
}
}
public static int[] radixSort(int[] A, int n) {
if(n<2 || A==null)return null;
//先创建一个二维数组,第一个[]表示有0~9个桶,第二个[]表示每个0~9的余数后面的数值
//用A.length表示是因为可能全部都是一样的余数
int[][] number =new int[10][A.length];
//再创建一个数组表示number数组的每一个桶里面的数目,数组默认初始化为0(int类型)
int[] count =new int[10];
//再补充一些,count数组的内容表示几个同样余数的作用
int a=1;//n表示每个数整除得到的整数
int m=1;//m表示指向的位数
int k=0;//k表示最后输出的结果
while(m<=4){
//第一个[]里面放lsd表示是余数为lsd的
//然后第二个[]放count[lsd]表示是这个余数为lsd的桶的数量
//因为lsd通过(A[j]/a)%10得到的范围是0~9
for(int j=0;j<A.length;j++){
    int lsd =((A[j]/a)%10);//这是得到余数
    number[lsd][count[lsd]]=A[j];
    count[lsd]++;//这里要++是因为第lsd个余数的第count[lsd]已经有数值了
}
 
for(int p=0;p<10;p++){
//这里循环遍历二维数组将按位数顺序将值重新放进数组A中
if(count[p]!=0)
//这里用count[p]来判断二维数组的第一个[]是否为0
for(int q=0;q<count[p];q++){
A[k]=number[p][q];
k++;
}
 count[p]=0;  
}
k=0;
a*=10;//开始十位的数字尾数比较
m++;
}  
return A;
}
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA语言之基数排序 的相关文章

  • 导入java spring项目后如何构建maven

    你好 我是 java spring 概念的新手 所以我下载了一个示例spring应用程序并将其导入到eclipse中 我已经阅读了spring教程 要么我必须将maven安装到eclipse中才能运行spring项目 所以我已经安装了mav
  • Java JFileChooser 与过滤器据称仅显示目录无法仅显示目录

    预先感谢 如果您需要更多信息 请告诉我 示例代码位于底部 我试图解决的问题 我试图通过使用 javax swing filechooser FileFilter 对象来使此 JFileChooser 对象仅显示目录 而不是文件 该对象在ac
  • 为 HTTPS 连接设置 https.protocols 系统属性时出现问题

    我有一个 Java 实现 各种客户端应用程序使用它来连接到第三方系统 这些第三方系统支持 http https 上的不同协议 在这种情况下 所有客户端应用程序都托管在我的 Java 实现托管的同一服务器中 因此 在这种情况下 各种客户端应用
  • 有没有办法获取 JList 中的所有元素?

    我想知道是否有一种方法可以检索已添加到 JList 的所有元素的列表 例如 我希望 JList 从自定义单元格渲染器返回字符串或 JLabels 的数组或列表 您可以使用getModel http docs oracle com javas
  • Hibernate统计打印HQL:null

    我是使用休眠的新手 我打开了统计信息 与普通的 HQL 查询一起 我得到了许多这样的统计信息 INFO Statistics HQL null time 1724ms rows blah 有人可以以任何方式帮助我为什么null查询大约需要
  • 如何选择主题与队列

    当我们设计应用程序时如何选择Topic Queue类型实现 我知道 a 如果有多个消费者使用该消息 则使用 Topicb 如果只有一个消费者则使用Queue 请提供更多需要考虑的点 比如并发 消息持久化 负载均衡等等 Thanks Rw 如
  • RSA Java 加密和 Node.js 解密不起作用

    我有一个系统 需要在 javascript 中生成 RSA 密钥对 然后将公钥存储在服务器端的数据库中 作为字符串 然后 Java 中的服务器端将使用存储的公钥对字符串进行加密密钥并将其发送到客户端 客户端将使用私钥解密该字符串 我在客户端
  • 从 java 代码运行 Python 脚本

    这是我第一次在java中尝试python 我正在尝试从我的代码执行 python 脚本 如下所示 Process process Runtime getRuntime exec python C Users username Desktop
  • 在java中将HTML转换为RTF?

    我需要将 HTML 转换为 RTF 我正在使用以下代码 private static String convertToRTF String htmlStr OutputStream os new ByteArrayOutputStream
  • JFreeChart 更改现有条形图中的数据

    我想循环更改条形图数据 但我不知道该怎么做 我的代码 DefaultCategoryDataset barChartData new DefaultCategoryDataset barChartData setValue 0 Values
  • 如何从 ByteBuffer 转换为 Integer 和 String?

    我转换了一个int使用 ByteBuffer 的字节数组putInt 方法 我该如何做相反的事情 那么将这些字节转换为 int 吗 此外 我使用 String 的将字符串转换为字节数组getBytes 方法 我如何将其反过来转换 这byte
  • Log4j 2.x 如何实现惰性参数求值?

    鉴于Java 参数评估机制 http docs oracle com javase specs jls se8 html jls 15 html jls 15 12 4 2 如何Log4j 2 x实施惰性评估 https logging a
  • Java SFTP使用JSch上传,但如何覆盖当前文件?

    我正在尝试使用 JSch 通过 SFTP 将两个文件上传到服务器 如果目录为空 则上传文件效果很好 但我想一遍又一遍地上传相同的文件 只需更改内部的 id 但我不知道如何执行此操作 JSch 中有一些名为 OVERWRITE 的静态参数 但
  • 识别包含本机方法实现的库文件/源

    如何识别包含本机方法实现的库文件 Ex public native String intern 我在哪里可以找到实施 source code of String intern 方法 找到了答案String intern 与快速谷歌搜索 ht
  • Finalize() 何时执行? [复制]

    这个问题在这里已经有答案了 在一次采访中我被问到 假设 JVM 在 A 类对象未被使用时运行 gc class A some code here protected void finalize code here 它是否保证finalize
  • Java Reflection:为什么这么慢?

    我一直避免使用 Java 反射 因为它速度缓慢 我在当前项目的设计中达到了一个点 能够使用它将使我的代码更具可读性和优雅性 所以我决定尝试一下 我只是对这种差异感到惊讶 我注意到有时运行时间几乎延长了 100 倍 即使在这个简单的例子中 它
  • Selenium - WebDriver.findElement() 和 WebElement.findElement() 之间的区别

    我正在使用WebElement findElement By cssSelector click 在页面上查找某个元素 但它返回了 Unable to locate element 但是当我使用WebDriver findElement B
  • Java中有没有办法随机获取HashMap的值?

    Java中有没有办法随机获取HashMap的值 这有效 Random generator new Random Object values myHashMap values toArray Object randomValue values
  • Java中ThreadFactory的使用

    有人可以简要解释一下如何以及何时使用 ThreadFactory 吗 使用和不使用 ThreadFactory 的示例可能确实有助于理解差异 Thanks 这是一种可能的用法 假设您有一个ExecutorService它执行你的Runnab
  • DocumentBuilder 解析产生无效字节 2 of 4 字节 UTF-8 序列错误

    我正在尝试解析包含字符串的字节数组Impresi n in XML final DocumentBuilderFactory builderFactory DocumentBuilderFactory newInstance final D

随机推荐

  • 广播电视相关信息系统安全 等级保护测评要求

    http www ahgd gov cn data upfile 1 files 1211 1 12111210240962 pdf
  • JAVA之希尔排序

    public class xier public static void main String args int A 61 new int 10 9 8 7 6 5 4 3 2 1 A 61 xier shellSort A 10 for
  • JAVA语言之快速排序

    package com paixu public class kuaipai 64 param args public static void main String args int a 61 new int 5 4 3 2 1 0 ku
  • 计算字符个数之机试

    题目描述 写出一个程序 xff0c 接受一个有字母和数字以及空格组成的字符串 xff0c 和一个字符 xff0c 然后输出输入字符串中含有该字符的个数 不区分大小写 输入描述 输入一个有字母和数字以及空格组成的字符串 xff0c 和一个字符
  • 字符串最后一个单词的长度之机试

    题目描述 计算字符串最后一个单词的长度 xff0c 单词以空格隔开 输入描述 一行字符串 输出描述 整数N xff0c 最后一个单词的长度 输入例子 hello world 输出例子 5 用String split String str 里
  • 明明的随机数之机试

    输入描述 输入多行 xff0c 先输入随机整数的个数 xff0c 在输入相应个数的整数 输出描述 返回多行 xff0c 处理后的结果 输入例子 11 10 20 40 32 67 40 20 89 300 400 15 输出例子 10 15
  • 字符串分隔之机试

    输入描述 连续输入字符串 输入2次 每个字符串长度小于100 输出描述 输出到长度为8的新字符串数组 输入例子 abc 123456789 输出例子 abc00000 12345678 90000000 思路 xff1a 重点在于字符串的长
  • 质数因子之机试

    功能 输入一个正整数 xff0c 按照从小到大的顺序输出它的所有质数的因子 xff08 如180的质数因子为2 2 3 3 5 xff09 详细描述 xff1a 函数接口说明 xff1a public String getResult lo
  • 取近似值之机试

    题目描述 写出一个程序 xff0c 接受一个浮点数值 xff0c 输出该数值的近似整数值 如果小数点后数值大于等于5 向上取整 xff1b 小于5 xff0c 则向下取整 输入描述 输入一个浮点数值 输出描述 输出该数值的近似整数值 输入例
  • 合并表记录之机试

    输入描述 先输入键值对的个数 然后输入成对的index和value值 xff0c 以空格隔开 输出描述 输出合并后的键值对 xff08 多行 xff09 输入例子 4 0 1 0 2 1 2 3 4 输出例子 0 3 1 2 3 4 思想
  • 提取不重复的整数之机试

    输入一个int型整数 xff0c 按照从右向左的阅读顺序 xff0c 返回一个不含重复数字的新的整数 输入描述 输入一个int型整数 输出描述 按照从右向左的阅读顺序 xff0c 返回一个不含重复数字的新的整数 输入例子 9876673 输
  • 链游Farmers World【农民世界】爆火,发布一个免费开源的辅助挂机脚本

    初衷 GameFi爆火 xff0c 农民世界 崛起 xff0c 浅谈链游辅助脚本开发思路 https blog csdn net CharlesSimonyi article details 121413962 上一篇文章中 xff0c 我
  • 确定两串乱序同构之程序员面试经典

    给定两个字符串 xff0c 请编写程序 xff0c 确定其中一个字符串的字符重新排列后 xff0c 能否变成另一个字符串 这里规定大小写为不同字符 xff0c 且考虑字符串重点空格 给定一个string stringA 和一个string
  • 基本字符串压缩之程序员面试经典

    利用字符重复出现的次数 xff0c 编写一个方法 xff0c 实现基本的字符串压缩功能 比如 xff0c 字符串 aabcccccaaa 经压缩会变成 a2b1c5a3 若压缩后的字符串没有变短 xff0c 则返回原先的字符串 给定一个st
  • 像素翻转之程序员面试经典

    有一副由NxN矩阵表示的图像 xff0c 这里每个像素用一个int表示 xff0c 请编写一个算法 xff0c 在不占用额外内存空间的情况下 即不使用缓存矩阵 xff0c 将图像顺时针旋转90度 给定一个NxN的矩阵 xff0c 和矩阵的阶
  • 清除行列之程序员面试经典

    请编写一个算法 xff0c 若MxN矩阵中某个元素为0 xff0c 则将其所在的行与列清零 给定一个MxN的int 矩阵 C 43 43 中为vector lt vector gt mat 和矩阵的阶数n xff0c 请返回完成操作后的in
  • JAVA语言之归并排序

    package com paixu public class guibing public static void main String args int A 61 new int 5 3 4 2 1 A 61 guibing merge
  • 程序员面试经典之链表分割

    题目描述 编写代码 xff0c 以给定值x为基准将链表分割成两部分 xff0c 所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode pHead xff0c 请返回重新排列后的链表的头指针 注意 xff1a 分
  • JAVA语言之计数排序

    非比较的计数排序可以用桶排序的方式实现 代码如下 xff1a package com paixu public class jishu public static void main String args int A 61 new int
  • JAVA语言之基数排序

    基数排序简而言之可以创建0 9余数共十个桶 代码如下 xff1a public class jishu 1 public static void main String args int A 61 new int 54 35 48 36 2