java 计数排序
时间: 2023-11-13 08:57:55 浏览: 80
Java实现计数排序
5星 · 资源好评率100%
好的,关于 Java 实现计数排序,可以按照以下步骤进行:
1. 找出待排序数组中的最大值和最小值。
2. 创建一个计数数组,长度为最大值和最小值之差加 1。
3. 遍历待排序数组,将每个元素出现的次数记录在计数数组中。
4. 遍历计数数组,将每个元素的值累加前面所有元素的值,得到每个元素在排序后数组中的位置。
5. 创建一个与待排序数组长度相同的结果数组,遍历待排序数组,根据计数数组中该元素的位置,将其放入结果数组中。
6. 返回结果数组。
以下是 Java 代码实现:
```java
public static int[] countingSort(int[] arr) {
int max = arr[0], min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
int[] count = new int[max - min + 1];
for (int i = 0; i < arr.length; i++) {
count[arr[i] - min]++;
}
for (int i = 1; i < count.length; i++) {
count[i] += count[i - 1];
}
int[] res = new int[arr.length];
for (int i = arr.length - 1; i >= 0; i--) {
res[--count[arr[i] - min]] = arr[i];
}
return res;
}
```
阅读全文