import java.util.Arrays;public class RadixSort {public static void main(String[] args) {int[] arr = {53, 3, 542, 748, 14, 214};radixSort(arr);System.out.println(Arrays.toString(arr));}// 基数排序方法public static void radixSort(int[] arr){// 得到数组中最大的数的位数int max = arr[0];for (int i = 1; i < arr.length; i++) {if(arr[i] > max){max = arr[i];}}// 得到最大数是几位数int maxLength = (max+"").length();// 定义一个二维数组,表示10个桶,一个一维数组就表示一个桶int[][] bucket = new int[10][arr.length];// 记录每个桶中实际存放了多少个数据int[] bucketElementCounts = new int[10];for (int k = 0,n=1; k < maxLength; k++,n*=10){// 第k轮(针对每个元素的个位进行排序处理)for (int i = 0; i < arr.length; i++) {// 取出每个元素的个数int digitOfElement = arr[i]/n%10;// 放入到对应的桶中bucket[digitOfElement][bucketElementCounts[digitOfElement]] = arr[i];bucketElementCounts[digitOfElement]++;}// 按照这个桶的顺序(一维数组的下标依次取出数据,放入原来数组)int index = 0;for (int i = 0; i < bucket.length; i++) {for (int j = 0; j < bucketElementCounts[i]; j++) {// 取出元素放入arrarr[index] = bucket[i][j];index++;}// 将每个桶的实际个数清为0bucketElementCounts[i] = 0;}}}
}

数据结构:基数排序(Radix sort)相关推荐

  1. php排序算法算法,PHP排序算法之基数排序(Radix Sort)实例详解

    本文实例讲述了PHP排序算法之基数排序(Radix Sort).分享给大家供大家参考,具体如下: 基数排序在<大话数据结构>中并未讲到,但是为了凑齐八大排序算法,我自己通过网络学习了这个排 ...

  2. C语言实现基数排序Radix sort算法之二(附完整源码)

    基数排序Radix sort算法 基数排序Radix sort算法的完整源码(定义,实现,main函数测试) 基数排序Radix sort算法的完整源码(定义,实现,main函数测试) #includ ...

  3. C语言实现基数排序Radix sort算法之一(附完整源码)

    基数排序Radix sort算法 基数排序Radix sort算法的完整源码(定义,实现,main函数测试) 基数排序Radix sort算法的完整源码(定义,实现,main函数测试) #includ ...

  4. GPU基数排序(CUDA radix sort)

    GPU基数排序(CUDA radix sort) 引言:基数排序是具有固定迭代次数的排序算法, 其通过对最低位到最高位的一一比较,对数值排序.本文将介绍基数排序的并行实现方法,主要包括并行基数排序.并 ...

  5. 基数排序(radix sort)

    基数排序(radix sort) 1.基本介绍 1)基数排序(radix sort)属于"分配式排序"(distribution sort),又称"桶子法"(b ...

  6. Java实现基数排序及其推导过程 Radix Sort

    本文带来八大排序算法之基数排序. 基数排序(radix sort)属于"分配式排序"(distribution sort),又称"桶子法"(bucket sor ...

  7. C++radix sort基数排序的实现算法之一(附完整源码)

    C++radix sort基数排序的实现算法 C++radix sort基数排序的实现算法完整源码(定义,实现,main函数测试) C++radix sort基数排序的实现算法完整源码(定义,实现,m ...

  8. C++radix sort基数排序的实现算法之二(附完整源码)

    C++radix sort基数排序的实现算法 C++radix sort基数排序的实现算法完整源码(定义,实现,main函数测试) C++radix sort基数排序的实现算法完整源码(定义,实现,m ...

  9. count sort, radix sort, bucket sort

    count sort, radix sort, bucket sort 标签(空格分隔): algorithms 基于比较的排序算法,都逃不过O(nlogn)O(nlogn)O(nlogn)的宿命1. ...

  10. java radix sort_用于Radix Sort的Java程序

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

最新文章

  1. django learn 多对多的两种映射关系
  2. 直播回顾 | 最强中文NLP预训练模型艾尼ERNIE官方揭秘
  3. Android开发--用户定位服务--UserLocation
  4. asp 转换html代码,asp下实现对HTML代码进行转换的函数
  5. 如何成为一个设计师和程序员混合型人才
  6. linux之readelf命令
  7. 最全面的关于LINUX与UNIX下的dd命令详解
  8. android源码编译jar,在android源码编译中导入第三方jar包
  9. 关于TCP或FTP异常断开的处理方法总结
  10. 手把手教你如何把本地文件传到服务器,如何映射
  11. 一个关于传奇3G游戏的感言
  12. 七月外贸新规,外贸人请查收
  13. 怎么将音频原始文件导入matlab,Matlab2019b音频文件读取
  14. 超好用的富文本编辑器froalaEditor(方便传图片和视频等)
  15. wince同步软件区别
  16. 雷达多普勒频率计算公式_手持式雷达电波流速仪应用
  17. AD19快速制作多管脚元件符号
  18. 错误 bpbrm(PID=7552) 从客户端 - Script exited with status = 1 the requested operat
  19. python 响铃_python——字符串-阿里云开发者社区
  20. Android之NFC

热门文章

  1. 利用Docker设置Node.js
  2. redis as session_handler
  3. likelihood(似然) and likelihood function(似然函数)
  4. POJ 2299 Ultra-QuickSort(树状数组+离散化)
  5. 整理记录个人面试问题
  6. HTML5/CSS3/JavaScript
  7. SpringMvc之整合DWR3.0.0推送消息
  8. 关于Java中next() nextLine()的区别
  9. Microsoft 365及应用开发的未来:微软BUILD 2018大会第二天主题演讲
  10. Ubuntu安装设置nginx和nohup常用操作