数据结构:基数排序(Radix sort)
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)相关推荐
- php排序算法算法,PHP排序算法之基数排序(Radix Sort)实例详解
本文实例讲述了PHP排序算法之基数排序(Radix Sort).分享给大家供大家参考,具体如下: 基数排序在<大话数据结构>中并未讲到,但是为了凑齐八大排序算法,我自己通过网络学习了这个排 ...
- C语言实现基数排序Radix sort算法之二(附完整源码)
基数排序Radix sort算法 基数排序Radix sort算法的完整源码(定义,实现,main函数测试) 基数排序Radix sort算法的完整源码(定义,实现,main函数测试) #includ ...
- C语言实现基数排序Radix sort算法之一(附完整源码)
基数排序Radix sort算法 基数排序Radix sort算法的完整源码(定义,实现,main函数测试) 基数排序Radix sort算法的完整源码(定义,实现,main函数测试) #includ ...
- GPU基数排序(CUDA radix sort)
GPU基数排序(CUDA radix sort) 引言:基数排序是具有固定迭代次数的排序算法, 其通过对最低位到最高位的一一比较,对数值排序.本文将介绍基数排序的并行实现方法,主要包括并行基数排序.并 ...
- 基数排序(radix sort)
基数排序(radix sort) 1.基本介绍 1)基数排序(radix sort)属于"分配式排序"(distribution sort),又称"桶子法"(b ...
- Java实现基数排序及其推导过程 Radix Sort
本文带来八大排序算法之基数排序. 基数排序(radix sort)属于"分配式排序"(distribution sort),又称"桶子法"(bucket sor ...
- C++radix sort基数排序的实现算法之一(附完整源码)
C++radix sort基数排序的实现算法 C++radix sort基数排序的实现算法完整源码(定义,实现,main函数测试) C++radix sort基数排序的实现算法完整源码(定义,实现,m ...
- C++radix sort基数排序的实现算法之二(附完整源码)
C++radix sort基数排序的实现算法 C++radix sort基数排序的实现算法完整源码(定义,实现,main函数测试) C++radix sort基数排序的实现算法完整源码(定义,实现,m ...
- count sort, radix sort, bucket sort
count sort, radix sort, bucket sort 标签(空格分隔): algorithms 基于比较的排序算法,都逃不过O(nlogn)O(nlogn)O(nlogn)的宿命1. ...
- java radix sort_用于Radix Sort的Java程序
基数排序是一种排序技术,可根据每个元素(或数字)中的每个数字对元素进行排序.基于一个位数(也称为最低有效位数)和十位数(也称为最高有效位数),数百个位数等等,对元素进行排序. 示例 以下是Java中R ...
最新文章
- django learn 多对多的两种映射关系
- 直播回顾 | 最强中文NLP预训练模型艾尼ERNIE官方揭秘
- Android开发--用户定位服务--UserLocation
- asp 转换html代码,asp下实现对HTML代码进行转换的函数
- 如何成为一个设计师和程序员混合型人才
- linux之readelf命令
- 最全面的关于LINUX与UNIX下的dd命令详解
- android源码编译jar,在android源码编译中导入第三方jar包
- 关于TCP或FTP异常断开的处理方法总结
- 手把手教你如何把本地文件传到服务器,如何映射
- 一个关于传奇3G游戏的感言
- 七月外贸新规,外贸人请查收
- 怎么将音频原始文件导入matlab,Matlab2019b音频文件读取
- 超好用的富文本编辑器froalaEditor(方便传图片和视频等)
- wince同步软件区别
- 雷达多普勒频率计算公式_手持式雷达电波流速仪应用
- AD19快速制作多管脚元件符号
- 错误 bpbrm(PID=7552) 从客户端 - Script exited with status = 1 the requested operat
- python 响铃_python——字符串-阿里云开发者社区
- Android之NFC
热门文章
- 利用Docker设置Node.js
- redis as session_handler
- likelihood(似然) and likelihood function(似然函数)
- POJ 2299 Ultra-QuickSort(树状数组+离散化)
- 整理记录个人面试问题
- HTML5/CSS3/JavaScript
- SpringMvc之整合DWR3.0.0推送消息
- 关于Java中next() nextLine()的区别
- Microsoft 365及应用开发的未来:微软BUILD 2018大会第二天主题演讲
- Ubuntu安装设置nginx和nohup常用操作