java中的计数排序算法
public void countingsort(int[] array, int[] b, int k) { //创建数组c int[] c = new int[k+1]; for(int i=0;i<c.length;i++) { c[i] = 0; } //统计数组array中每个元素出现的次数 for(int i=0;i<array.length;i++) { c[array[i]]++; } /** * 统计数组中小于等于某一个数的的个数 * 因为小于等于0的数的个数就是等于0的个数,所以迭代从1开始 */ for(int i=1;i<c.length;i++) { c[i] =c[i] + c[i-1]; } for(int i=0;i<array.length;i++) { /** * */ b[c[array[i]] - 1] = array[i]; /** * */ c[array[i]]--; } } public static void main(String[] args) { int[] array =new int[]{3,13,5,2,55,17,20,1,6,5}; int[] b = new int[10]; new Counting().countingsort(array,b,55);//其中55为数组中最大的元素值 for(int i=0;i<b.length;i++) { System.out.print(b[i]+" "); } }
相关推荐
算法改变人生 2020-07-28
路漫 2020-06-16
Skyline 2020-06-16
dushine00 2020-04-19
roseying 2019-12-02
yuanran0 2019-12-01
代码之神 2019-11-04
natloc 2015-05-01
StrongHYQ 2015-04-30
郭岚 2019-06-28
azhedashuaibi 2019-06-28
郭岚 2019-06-27
WindChaser 2019-06-26
YUAN 2019-06-21
standfly 2018-08-14
郭岚 2017-12-04
清雨轩 2017-11-29
xxylql 2014-04-05
Python探路者 2014-04-25