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