快速排序模板
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
int N = 1000010;
int n = input.nextInt();
int[] nums = new int[N];
for (int i = 0; i < n; i++) {
nums[i] = input.nextInt();
}
Sort(nums,0,n - 1);
for (int i = 0; i < n; i++) {
System.out.print(nums[i] + " ");
}
}
public static void Sort(int[] num,int l,int r){
if(l >= r){
return;
}
int x = num[(l + r)/2],i = l - 1,j = r + 1;
while(i < j){
do {i++;}while (num[i] < x);
do {j--;} while(num[j] > x);
if(i < j){
int t = num[i];
num[i] = num[j];
num[j] = t;
}
}
Sort(num,l,j);
Sort(num,j + 1, r);
}
}
对输入数据进行优化,进一步减少运行时间
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int N = 1000;
int n = Integer.parseInt(input.readLine());
int[] nums = new int[N];
for (int i = 0; i < n; i++) {
nums[i] = Integer.parseInt(input.readLine());
}
Sort(nums,0,n - 1);
for (int i = 0; i < n; i++) {
System.out.print(nums[i] + " ");
}