八大排序算法之-基数排序 java代码
2017-08-02 23:03
405 查看
import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; /** * Created by Administrator on 2017/8/2. */ public class radixSort_ { public static int inbucknum = 2; public static void main(String args[]) { int[] arr = {73, 22,25,71, 93, 43, 55, 14, 28, 65, 39, 81}; radixsort(arr,0,arr.length-1); System.out.println(Arrays.toString(arr)); } /*算法思想: * 1.由于需要10个桶存放0-9,并且每个桶中放置数组中元素, * 所以创建队列数组 * 2.依次按照个位,十位进行入桶,全部入桶后按照0-9桶覆盖到数组中 * 3.重复2*/ private static void radixsort(int[] arr, int start, int end) { Queue<Integer> [] que = new Queue[10];//定义一个队列数组 for (int i = 0; i<10; i++) {//初始化队列数组 que[i] = new LinkedList<Integer>(); } for (int m = 0; m<inbucknum; m++) {//设定入桶排序的趟数 //入桶 for (int i = 0; i<=end; i++) { int k = keynum(arr[i],m);// que[k].offer(arr[i]); } //出桶 int index = 0; for (int i = 0; i< 10; i++) { while (!que[i].isEmpty()) { arr[index++] = que[i].poll(); } } } } private static int keynum(int value, int m) { if (m == 0) { return value%10; } int d = 1; for (int i = 0; i<m; i++) { d *=10; } return (value/d)%10; } }
相关文章推荐
- 八大排序算法之-快速排序 java代码
- 桶式排序与基数排序举例及JAVA代码实现(附:基数排序的方法给英文字符串排序)
- 八大排序算法之-选择排序 java代码
- 八大排序算法之-直接插入排序 java代码
- 基数排序java实现代码
- 基数排序 java代码实现
- java中文字符串按拼音排序 代码
- 球队对手排序问题(java面向对象代码解)
- Java 实现选择排序代码
- 算法代码实现之快速排序,Java实现
- 简单选择、冒泡、插入排序思想及Java实现代码
- Oracle sql以某个汉字的字段的汉语拼音作为排序,java代码排序不能按要求显示序列号
- 快速排序的递归和非递归实现 -----C++、JAVA代码实现
- 基数排序原理及JAVA实现(待续)
- java 排序与二分法查找代码
- C++代码,数据结构-内部排序-基数排序-链式基数排序
- Java中选择,冒泡,快排原理代码 阶层 数组的排序 数组的排序 以及代码大全
- 八大排序算法之基数排序
- Oracle存储过程(分页、模糊查找、排序、按字段区间查找)etc.以及JAVA代码
- [编写高质量代码:改善java程序的151个建议]建议73 使用Comparator进行排序