基数排序算法之Java实现
2015-11-04 21:22
465 查看
基数排序的原理:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
Java代码实现此算法如下:
Java代码实现此算法如下:
/** * 基数排序 * * @param a * 待排序的数组 * @param d * 数组中元素的位数 */ public static void radixSort(int[] a, int d) { int[] countArray = new int[10]; // 记录每个基数的数量 int[][] kindArray = new int[10][a.length]; // 把数组a中的元素按照基数归类,一维的含义是0-9个数字,二维的含义是含有一维基数的a中的元素 int n = 1; while (d-- > 0) { int k = 0; for (int i = 0; i < a.length; i++) { int radix = (a[i] / n) % 10; // n的作用在这体现出来,每一轮while循环,n就会扩大10倍 kindArray[radix][countArray[radix]] = a[i]; countArray[radix]++; } // 将每个基数排完序后的结果重新放入a数组中 for (int i = 0; i < kindArray.length; i++) { for (int j = 0; j < countArray[i]; j++) { a[k] = kindArray[i][j]; k++; } countArray[i] = 0; // 为了其它的基数计算,计数数组必须清0 } n *= 10; } }
相关文章推荐
- JavaScript演示排序算法
- 算法之排序算法的算法思想和使用场景总结
- php 地区分类排序算法
- js三种排序算法分享
- Javascript中的常见排序算法
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述
- 排序算法的javascript实现与讲解(99js手记)
- C++中十种内部排序算法的比较分析
- Java实现几种常见排序算法代码
- 浅谈javascript实现八大排序
- PHP常用的排序和查找算法
- JavaScript中九种常用排序算法
- STl中的排序算法详细解析
- PHP四种基本排序算法示例
- 排序算法之PHP版快速排序、冒泡排序
- JavaScript排序算法之希尔排序的2个实例
- Java常用排序算法及性能测试集合
- Java中常用的6种排序算法详细分解
- Javascript排序算法之合并排序(归并排序)的2个例子
- JAVA简单选择排序算法原理及实现