题解 | 【模板】排序
【模板】排序
https://www.nowcoder.com/practice/40bf74658879460bbf5f1bfe772e8580
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int index = 0;
int[] nums = new int[n];
while (in.hasNextInt()) {
nums[index] = in.nextInt();
index++;
}
// mergeSort(nums);
quickSortNum(nums, 0, n - 1);
for (int i = 0; i < n; i++) {
System.out.print(nums[i] + " ");
}
}
// 快速排序
private static void quickSortNum(int[] nums, int left, int right) {
if (left < right) {
int pivot = partition(nums, left, right);
quickSortNum(nums, pivot + 1, right);
quickSortNum(nums, left, pivot - 1);
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[low];
int i = low + 1;
for (int j = low + 1; j <= high; j++) {
if (arr[j] < pivot) {
swap(arr, i, j);
i++;
}
}
swap(arr, low, i - 1);
return i - 1;
}
// ———————— 快速排序 ————————
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}

OPPO公司福利 1108人发布