基数排序是一种排序技术,可根据每个元素(或数字)中的每个数字对元素进行排序。基于一个位数(也称为最低有效位数)和十位数(也称为最高有效位数),数百个位数等等,对元素进行排序。

示例

以下是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程序相关推荐

  1. android 揭示动画_Java专家考虑了模块化Java的未来,并揭示了Java 11愿望清单中的内容

    android 揭示动画 "以一流的公民身份将模块的概念引入Java中是一个好主意" 我们的Java 10访谈系列即将结束,但是我们还有两个主题需要讨论: 模块化的未来和Java ...

  2. 深入学习java源码之 Arrays.sort()与Arrays.parallelPrefix()

    深入学习java源码之 Arrays.sort()与Arrays.parallelPrefix() Comparator接口 能对不同类型的对象进行排序(当然排序依据还是基本类型),也不用自己实现排序 ...

  3. linux java平台,如何下载和安装用于 Linux 平台的 Java

    本文适用于: 平台: Red Hat Linux, SUSE Linux, Oracle Linux, Oracle Enterprise Linux, SLES Linux 系统要求 请参阅受支持的 ...

  4. eclipselink_EclipseLink MOXy和用于JSON处理的Java API –对象模型API

    eclipselink 用于JSON处理的Java API(JSR-353)是作为Java EE 7的一部分引入的用于生成和使用JSON的Java标准.JSR-353包括对象(类似于DOM)和流(类似 ...

  5. EclipseLink MOXy和用于JSON处理的Java API –对象模型API

    用于JSON处理的Java API(JSR-353)是用于生成和使用JSON的Java标准,它是Java EE 7的一部分引入.JSR-353包括对象(类似于DOM)和流(类似于StAX)API. 在 ...

  6. java类中声明log对象_用于Android环境,java环境的log打印,可打印任何类型数据

    LogXixi 用于Android环境,java环境的log打印,可打印任何类型数据,根据android项目环境debug环境自动打开,release环境自动关闭android环境log打印,规范be ...

  7. java中InvocationHandler 用于实现代理。

    以下的内容部分参考了网络上的内容,在此对原作者表示感谢! Java中动态代理的实现,关键就是这两个东西:Proxy.InvocationHandler,下面从InvocationHandler接口中的 ...

  8. Java异常:IllegalArgumentException Collections.sort报错

    异常 java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util ...

  9. jdbc mysql api_JDBC---一种用于执行SQL的Java API

    JDBC是一种用于执行SQL的Java API,它本身是个商标名,但很多人把它认为是Java Database Connectivity(Java 数据库连接)的缩写. JDBC是一组访问数据库的AP ...

最新文章

  1. python汇编指令_Python基础语法
  2. Java集合—HashMap底层原理
  3. 关系数据库SQL之可编程性函数(用户自定义函数)
  4. 怎样安装python在桌面_在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程...
  5. 引入struts html标签,【学习】Struts标签之html标签
  6. 阿里程序员转行公务员,工资少了40万,只留一句话惊醒众人
  7. 联想拯救者电竞手机成功“截胡”:全球首发骁龙865+
  8. 直接插入排序的python实现
  9. Android - UI
  10. TOMCAT安装指南
  11. 报表控件FastReport.NET使用教程:如何在 Visual Studio 中使用报表组件
  12. Mode首席执行官Paul Dawes:从销售工程师到科技领导者
  13. can是什么时候处于显性_CAN总线什么情况下为空闲状态? - 全文
  14. 一次性禁止禁止Flash Helper service(即ff新推荐)即flash弹出来的广告
  15. 什么是数据中心的运维
  16. 个人云服务的搭建(折腾)之旅
  17. 计算机应用基础2020年最新档案,计算机应用基础 高职计算机大类专业 刁爱军项目三 人事档案管理.pptx...
  18. ECNUOJ 2856 仰望星空
  19. windows系统使用Tera Term连接虚拟机(VMware Workstation) 中的Linux(CentOS)
  20. 使用element-tiptap后报错Duplicate use of selection JSON ID cell解决方法

热门文章

  1. oralce load的时候使用触发器会导致load慢吗_你真的了解性能压测中的SLA吗?
  2. 知名大学硕士生被通报,这件事千万别做!
  3. 国际空间站20年花掉超千亿美金,一些人开始觉得它“没啥用”了
  4. 纽约佩斯大学孔子学院:中国故事
  5. EM算法的九层境界:​Hinton和Jordan理解的EM算法
  6. 特邀主旨报告嘉宾及日程重磅出炉! 第29届IEEE国际智能车大会(IV 2018)即将盛大开幕...
  7. oracle运行环境配置,oracle 环境配置开机自启动
  8. (python numpy) np.array.shape 中 (3,)、(3,1)、(1,3)的区别
  9. 红米android4.4.2,新版红米Note配置升级详解:系统其实是基于Android 4.4.2
  10. zookeeper结构和命令详解