用java代码实现利用快速排序算法将读入的 n 个数从小到大排序后输出
时间: 2023-07-12 13:40:12 浏览: 132
tpn.rar_TPN_topN
可以参考以下 Java 代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = scanner.nextInt();
}
quickSort(nums, 0, nums.length - 1);
for (int num : nums) {
System.out.print(num + " ");
}
}
private static void quickSort(int[] nums, int left, int right) {
if (left >= right) {
return;
}
int pivot = partition(nums, left, right);
quickSort(nums, left, pivot - 1);
quickSort(nums, pivot + 1, right);
}
private static int partition(int[] nums, int left, int right) {
int pivot = nums[left];
int i = left, j = right;
while (i < j) {
while (i < j && nums[j] >= pivot) {
j--;
}
nums[i] = nums[j];
while (i < j && nums[i] <= pivot) {
i++;
}
nums[j] = nums[i];
}
nums[i] = pivot;
return i;
}
}
```
这段代码中,首先我们使用 `Scanner` 获取用户输入的整数个数 `n` 和这 `n` 个整数的值,并将这些整数保存在一个数组 `nums` 中。然后,我们使用 `quickSort` 方法对 `nums` 数组进行快速排序。在快速排序中,我们首先找到一个 `pivot` 值,并将数组中的元素分成两部分,左边的元素小于等于 `pivot`,右边的元素大于等于 `pivot`。然后,我们递归地对左右两边的元素进行排序,直到整个数组有序。最后,我们将排好序的数组元素输出即可。
阅读全文