请用【java】帮我写一段快排代码,并帮我讲解下实现逻辑用JAVA语言产生50个0到100的随机整数,输出其中的最大值、最小值、平均值,以每行10个数的形式输出所有的整数
时间: 2024-10-14 14:17:23 浏览: 38
当然可以,下面我会为你提供快速排序算法(QuickSort)的Java代码以及生成并处理随机整数的示例。
首先,来看看快速排序的Java代码:
```java
public class QuickSort {
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivotIndex = partition(arr, low, high);
quickSort(arr, low, pivotIndex - 1); // 对左半部分递归排序
quickSort(arr, pivotIndex + 1, high); // 对右半部分递归排序
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = (low - 1); // Index of smaller element
for (int j = low; j <= high - 1; j++) {
if (arr[j] < pivot) {
i++; // Increment index of smaller element
swap(arr, i, j);
}
}
swap(arr, i + 1, high); // Swap pivot with the correct position
return i + 1;
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void main(String[] args) {
int[] numbers = new int[50]; // 创建一个数组来存放随机数
// 生成50个0到100之间的随机整数并填充数组
for (int k = 0; k < 50; k++) {
numbers[k] = Math.floor(Math.random() * 101); // 随机生成一个0到100的整数
}
// 排序数组
quickSort(numbers, 0, numbers.length - 1);
System.out.printf("最大值: %d\n", Arrays.stream(numbers).max().getAsInt());
System.out.printf("最小值: %d\n", Arrays.stream(numbers).min().getAsInt());
double sum = 0;
for (int num : numbers) {
sum += num;
}
double average = sum / numbers.length;
System.out.println("平均值: " + average);
// 每行输出10个数字
for (int i = 0; i < numbers.length; i += 10) {
System.out.format("%s%n", Arrays.toString(Arrays.copyOfRange(numbers, i, Math.min(i + 10, numbers.length))));
}
}
}
```
这部分代码首先生成了一个长度为50的整数数组,然后使用快速排序算法对其进行排序。接着,它计算了最大值、最小值和平均值,并以每行10个数的形式打印出来。
现在,如果你运行这个程序,你会看到所需的结果。如果需要进一步的帮助或有其他问题,请随时告诉我。
阅读全文