题目描述
给定你一个长度为n的整数数列。
请你使用快速排序对这个数列按照从小到大进行排序。
并将排好序的数列按顺序输出。
样例
5
3 1 2 4 5
Java 代码
import java.util.Scanner;
class Main {
public static void quickSort(int[] q, int l, int r) {
if (l >= r) return;
int i = l - 1, j = r + 1, x = q[l + r >> 1];
int temp = 0;
while (i < j) {
do i++; while (q[i] < x);
do j--; while (q[j] > x);
if (i < j) {
temp = q[i];
q[i] = q[j];
q[j] = temp;
}
}
quickSort(q, l, j);
quickSort(q, j + 1, r);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = Integer.parseInt(in.nextLine());
int[] arr = new int[num];
String[] strArr = in.nextLine().split(" ");
for (int i = 0; i < num; i++){
arr[i] = Integer.parseInt(strArr[i]);
}
quickSort(arr, 0, num - 1);
for (int i = 0; i < num; i++) {
System.out.print(arr[i] + " ");
}
}
}