八大排序之基数排序
2016-05-16 14:54
183 查看
代码:
测试结果:
public class RadixSort { public static void sort(int[] number, int d) //d表示最大的数有多少位 { int k = 0; int n = 1; int m = 1; //控制键值排序依据在哪一位 int[][]temp = new int[10][number.length]; //数组的第一维表示可能的余数0-9 int[]order = new int[10]; //数组orderp[i]用来表示该位是i的数的个数 while(m <= d) { for(int i = 0; i < number.length; i++) { int lsd = ((number[i] / n) % 10); temp[lsd][order[lsd]] = number[i]; order[lsd]++; } for(int i = 0; i < 10; i++) { if(order[i] != 0) for(int j = 0; j < order[i]; j++){ number[k++] = temp[i][j]; } order[i] = 0; } n *= 10; k = 0; m++; } } public static void main(String[] args) { int[]data ={73, 22, 93, 43, 55, 14, 28, 65, 39, 81, 33, 100}; // int data[]={9,8,7,6,5,4,3,2,1,0}; RadixSort.sort(data, 3); for(int i = 0; i < data.length; i++) { System.out.print(data[i] + " "); } } }
测试结果:
相关文章推荐
- 静态代码扫描——PMD自定义规则实践(Log日志文件中不要输出敏感信息)
- Android apk压缩技术(二)——自定义progressbar
- 我的C++学习之路
- 开源深度学习库对比总结
- JS学习之表格的排序简单实例
- linux下查看所有用户及所有用户组
- iOS开发导航条覆盖View的问题
- Linux的进程/线程间通信方式总结
- iOS开发--tableview--Android中的listview
- uname d
- uname
- 【bzoj1609】【Usaco2008 Feb】Eating Together 题解&代码
- 知识点总结_(做内容管理系统之后总结1)
- java中的事件机制
- C++中字符串的库函数
- part1:6-Linux文本编辑器vi
- Entity Framework 6 Recipes 2nd Edition(13-7)译 -> 返回只部分填充的实体
- 第一部分:IBM量子体验
- SDN的一些初级入门介绍
- Java的项目构建工具Maven的配置和使用教程