public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {// 接受数组长度int n = sc.nextInt();// 创建数组int[] arr = new int[n];// 接受数组元素for (int i = 0; i < n; i++) {arr[i] = sc.nextInt();}int[] sortedArray = quickSort(arr, 0, n - 1);for (int i = 0; i < n; i++) {System.out.print(sortedArray[i] + " ");}}}/*** @description 快速排序* @param arr* @param left(从0开始)* @param right(到数组长度-1结束)* @return int[]*/public static int[] quickSort(int[] arr, int left, int right) {if (left < right) {// 分区int partitionIndex = partition(arr, left, right);// 左分区排序quickSort(arr, left, partitionIndex - 1);// 右分区排序quickSort(arr, partitionIndex + 1, right);}return arr;}/*** @description 快速排序的分区操作* @param arr* @param left(从0开始)* @param right(到数组长度-1结束)* @return int*/private static int partition(int[] arr, int left, int right) {// 设定基准值(pivot)int pivot = left;int index = pivot + 1;for (int i = index; i <= right; i++) {if (arr[i] < arr[pivot]) {swap(arr, i, index);index++;}}swap(arr, pivot, index - 1);return index - 1;}// 根据index交换数组中的两个元素private static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}
