java radix sort_用于Radix Sort的Java程序
基数排序是一种排序技术,可根据每个元素(或数字)中的每个数字对元素进行排序。基于一个位数(也称为最低有效位数)和十位数(也称为最高有效位数),数百个位数等等,对元素进行排序。
示例
以下是Java中Radix Sort的示例-import java.util.*;
public class my_radix_sorting {
static int get_max_val(int my_arr[], int arr_len) {
int max_val = my_arr[0];
for (int i = 1; i
if (my_arr[i] > max_val)
max_val = my_arr[i];
return max_val;
}
static void countSort(int my_arr[], int arr_len, int exp) {
int result[] = new int[arr_len];
int i;
int count[] = new int[10];
Arrays.fill(count,0);
for (i = 0; i
count[ (my_arr[i]/exp)%10 ]++;
for (i = 1; i
count[i] += count[i - 1];
for (i = arr_len - 1; i >= 0; i--) {
result[count[ (my_arr[i]/exp)%10 ] - 1] = my_arr[i];
count[ (my_arr[i]/exp)%10 ]--;
}
for (i = 0; i
my_arr[i] = result[i];
}
static void radix_sort(int my_arr[], int arr_len) {
int m = get_max_val(my_arr, arr_len);
for (int exp = 1; m/exp > 0; exp *= 10)
countSort(my_arr, arr_len, exp);
}
public static void main (String[] args) {
int my_arr[] = {56, 78, 102, 345, 67, 90, 102, 45, 78};
int arr_len = my_arr.length;
System.out.println("The array after performing radix sort is ");
radix_sort(my_arr, arr_len);
for (int i=0; i
System.out.print(my_arr[i]+" ");
}
}
输出结果The array after performing radix sort is
45 56 67 78 78 90 102 102 345
说明
在基数排序中,每个元素均基于其数字进行排序,其中每个元素中的最低有效数字首先被排序,而最高有效数字最后被排序。它使用计数排序作为子功能来执行其排序功能。
给定一个元素数组,第一步是根据最低有效位的数字(即一个位)对元素进行排序。接下来,根据十位数字对数组中的元素进行排序。然后,根据数百位数字对元素进行排序,依此类推。这是借助“ get_max_val”功能完成的。在main函数中,定义了数组,并将该数组作为参数传递给“ radix_sort”函数。
java radix sort_用于Radix Sort的Java程序相关推荐
- android 揭示动画_Java专家考虑了模块化Java的未来,并揭示了Java 11愿望清单中的内容
android 揭示动画 "以一流的公民身份将模块的概念引入Java中是一个好主意" 我们的Java 10访谈系列即将结束,但是我们还有两个主题需要讨论: 模块化的未来和Java ...
- 深入学习java源码之 Arrays.sort()与Arrays.parallelPrefix()
深入学习java源码之 Arrays.sort()与Arrays.parallelPrefix() Comparator接口 能对不同类型的对象进行排序(当然排序依据还是基本类型),也不用自己实现排序 ...
- linux java平台,如何下载和安装用于 Linux 平台的 Java
本文适用于: 平台: Red Hat Linux, SUSE Linux, Oracle Linux, Oracle Enterprise Linux, SLES Linux 系统要求 请参阅受支持的 ...
- eclipselink_EclipseLink MOXy和用于JSON处理的Java API –对象模型API
eclipselink 用于JSON处理的Java API(JSR-353)是作为Java EE 7的一部分引入的用于生成和使用JSON的Java标准.JSR-353包括对象(类似于DOM)和流(类似 ...
- EclipseLink MOXy和用于JSON处理的Java API –对象模型API
用于JSON处理的Java API(JSR-353)是用于生成和使用JSON的Java标准,它是Java EE 7的一部分引入.JSR-353包括对象(类似于DOM)和流(类似于StAX)API. 在 ...
- java类中声明log对象_用于Android环境,java环境的log打印,可打印任何类型数据
LogXixi 用于Android环境,java环境的log打印,可打印任何类型数据,根据android项目环境debug环境自动打开,release环境自动关闭android环境log打印,规范be ...
- java中InvocationHandler 用于实现代理。
以下的内容部分参考了网络上的内容,在此对原作者表示感谢! Java中动态代理的实现,关键就是这两个东西:Proxy.InvocationHandler,下面从InvocationHandler接口中的 ...
- Java异常:IllegalArgumentException Collections.sort报错
异常 java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util ...
- jdbc mysql api_JDBC---一种用于执行SQL的Java API
JDBC是一种用于执行SQL的Java API,它本身是个商标名,但很多人把它认为是Java Database Connectivity(Java 数据库连接)的缩写. JDBC是一组访问数据库的AP ...
最新文章
- python汇编指令_Python基础语法
- Java集合—HashMap底层原理
- 关系数据库SQL之可编程性函数(用户自定义函数)
- 怎样安装python在桌面_在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程...
- 引入struts html标签,【学习】Struts标签之html标签
- 阿里程序员转行公务员,工资少了40万,只留一句话惊醒众人
- 联想拯救者电竞手机成功“截胡”:全球首发骁龙865+
- 直接插入排序的python实现
- Android - UI
- TOMCAT安装指南
- 报表控件FastReport.NET使用教程:如何在 Visual Studio 中使用报表组件
- Mode首席执行官Paul Dawes:从销售工程师到科技领导者
- can是什么时候处于显性_CAN总线什么情况下为空闲状态? - 全文
- 一次性禁止禁止Flash Helper service(即ff新推荐)即flash弹出来的广告
- 什么是数据中心的运维
- 个人云服务的搭建(折腾)之旅
- 计算机应用基础2020年最新档案,计算机应用基础 高职计算机大类专业 刁爱军项目三 人事档案管理.pptx...
- ECNUOJ 2856 仰望星空
- windows系统使用Tera Term连接虚拟机(VMware Workstation) 中的Linux(CentOS)
- 使用element-tiptap后报错Duplicate use of selection JSON ID cell解决方法
热门文章
- oralce load的时候使用触发器会导致load慢吗_你真的了解性能压测中的SLA吗?
- 知名大学硕士生被通报,这件事千万别做!
- 国际空间站20年花掉超千亿美金,一些人开始觉得它“没啥用”了
- 纽约佩斯大学孔子学院:中国故事
- EM算法的九层境界:​Hinton和Jordan理解的EM算法
- 特邀主旨报告嘉宾及日程重磅出炉! 第29届IEEE国际智能车大会(IV 2018)即将盛大开幕...
- oracle运行环境配置,oracle 环境配置开机自启动
- (python numpy) np.array.shape 中 (3,)、(3,1)、(1,3)的区别
- 红米android4.4.2,新版红米Note配置升级详解:系统其实是基于Android 4.4.2
- zookeeper结构和命令详解