/**
* 计数排序(假设输入数组的每个元素都在0~5之间)
* @author Bright Lee
*/
public class CountingSort {
private static final int MAX_VALUE = 5;
public static int[] sort(int[] a) {
int[] c = new int[MAX_VALUE + 1];
for (int i = 0; i < a.length; i++) {
int v = a[i];
c[v] = c[v] + 1;
}
for (int i = 1; i < c.length; i++) {
c[i] = c[i] + c[i - 1];
}
int[] b = new int[a.length];
for (int i = a.length - 1; i >= 0; i--) {
b[c[a[i]] - 1] = a[i];
c[a[i]] = c[a[i]] - 1;
}
return b;
}
public static void main(String[] args) {
int[] a = {2, 5, 3, 4, 1, 0};
int[] b = sort(a);
for (int i = 0; i < b.length; i++) {
int v = b[i];
System.out.println(v);
}
}
}
榴芒客服系统:https://blog.youkuaiyun.com/look4liming/article/details/83146776
本文详细介绍了计数排序算法的实现原理与步骤,通过具体代码示例展示了如何使用计数排序对限定范围内的整数进行排序,适用于初学者理解计数排序的基本概念。
2484

被折叠的 条评论
为什么被折叠?



