用Java写一个基数排序,能对1000以内的数字排序
时间: 2023-03-21 22:03:01 浏览: 47
好的,以下是一个Java实现的基数排序算法,可以对1000以内的数字进行排序:
```java
public static void radixSort(int[] arr) {
// 找到数组中最大的数
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
// 计算最大数的位数
int digitNum = 0;
while (max != 0) {
digitNum++;
max /= 10;
}
// 初始化桶
int[][] bucket = new int[10][arr.length];
int[] count = new int[10];
// 进行排序
int mod = 10;
int div = 1;
for (int i = 0; i < digitNum; i++, div *= 10, mod *= 10) {
// 将数据放入桶中
for (int j = 0; j < arr.length; j++) {
int num = (arr[j] % mod) / div;
bucket[num][count[num]++] = arr[j];
}
// 将桶中的数据放回原数组中
int index = 0;
for (int j = 0; j < 10; j++) {
for (int k = 0; k < count[j]; k++) {
arr[index++] = bucket[j][k];
}
count[j] = 0; // 计数器清零
}
}
}
```
您可以将此代码复制到您的Java项目中并调用`radixSort`方法来对数组进行排序。