用java写一个计数排序算法函数,传入int[],对其进行计数排序,返回值void
时间: 2024-04-12 07:27:26 浏览: 15
以下是使用Java编写的计数排序算法函数:
```java
public static void countingSort(int[] arr) {
if (arr == null || arr.length == 0) {
return;
}
// 找出最大值
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
// 创建计数数组,并统计每个元素的出现次数
int[] count = new int[max + 1];
for (int i = 0; i < arr.length; i++) {
count[arr[i]]++;
}
// 根据计数数组重构原数组
int index = 0;
for (int i = 0; i <= max; i++) {
while (count[i] > 0) {
arr[index++] = i;
count[i]--;
}
}
}
```
在这个函数中,我们首先检查输入数组是否为空或长度为0,如果是,则直接返回。
然后,我们找到输入数组中的最大值,以确定计数数组的长度。
接下来,我们创建一个计数数组,并统计输入数组中每个元素的出现次数。
最后,我们使用两个循环,根据计数数组的信息重新构建原数组。外层循环遍历计数数组,内层循环根据计数值依次将元素放入原数组中。
通过调用`countingSort`函数,传入待排序的整型数组,即可对其进行计数排序。排序后的结果将直接修改原数组。