计数排序(Counting Sort)是一种非比较型排序算法,适用于一定范围内的整数排序。它的基本思想是通过计数输入元素中每个值出现的次数,然后计算每个值的起始位置,最终将元素放到正确的位置上。计数排序的时间复杂度为 O(n + k),其中 n 是输入数组的长度,k 是输入元素的范围。
以下是计数排序的 Java 实现:
import java.util.Arrays;
public class CountingSort {
// 计数排序算法
public static void countingSort(int[] array) {
if (array.length == 0) {
return;
}
// 找到数组中的最大值和最小值
int max = array[0];
int min = array[0];
for (int num : array) {
if (num > max) {
max = num;
}
if (num < min) {
min = num;
}
}
// 计算范围大小
int range = max - min + 1;
// 创建计数数组并初始化
int[] countArray = new int[range];
Arrays.fill(countArray, 0);
// 统计每个元素出现的次数
for (int num : array) {
countArray[num - min]++;
}

最低0.47元/天 解锁文章
1570

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



