JAVA语言之计数排序
2016-05-01 21:43
387 查看
非比较的计数排序可以用桶排序的方式实现
代码如下:
代码如下:
package com.paixu; public class jishu { public static void main(String[] args) { int[] A=new int[]{1,2,3,5,2,3}; A=jishu.countingSort(A, 6); for(int i=0;i<A.length;i++){ System.out.print(A[i]+" "); } } public static int[] countingSort(int[] A, int n) { int min=A[0]; int max=A[0]; //得到数组中的最大值和最小值 for(int a:A){ min =Math.min(a, min); max =Math.max(a, max); } //然后创建一个刚好的数量的桶 int tongNum=max-min+1; int[] tong =new int[tongNum]; //然后将A中对应的数放进该桶 for(int a:A){ tong[a-min]++; }//用遍历的每一个数减去最小的数就能保存 int count=0; //现在将数组桶里面的数据一次倒出 for(int i=0;i<tongNum;i++){ //第一个for含义是指一共有多少个这样的桶 for(int j=0;j<tong[i];j++){ //第二个for含义是指遍历到的每一个桶里面有多少个同样的数据 //并且从0开始都小于这个数目tong[i] A[count]=i+min; //这个表达式i+min表示从最小值+0开始算起 count++; } } return A; } }
相关文章推荐
- JAVA中的集合的概念
- Java jvm 内存回收机制
- Spring学习-helloworld
- [java]struts2 模型驱动
- 20145240 《Java程序设计》第九周学习总结
- 20145227 《Java程序设计》第9周学习总结
- 20144303 《Java程序设计》第九周学习总结
- 矩阵快速幂的应用-郭姐散步-java实现
- Java泛型的优点
- JDK源码解析之StringBuilder和StringBuffer
- java并发编程(5)--线程池的使用
- Spring核心之依赖注入(三)
- JAVA _JDK5的特性
- java基础知识(标识符,命名规则,注释)
- spring mvc异常统一处理(ControllerAdvice注解)
- springmvc异常信息的解读
- 第四次java实验报告
- java ODBC连接MYSQL数据库
- Java多线程编程(三)线程的优先级、同步与死锁
- JAVA递归、非递归遍历二叉树(转)