使用BufferedReader
比Scanner
快数倍;
Scanner
耗时9000+ms,BufferedReader
耗时3700+ms
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws Exception{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine());
String[] s = reader.readLine().split(" ");
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = Integer.parseInt(s[i]);
}
quickSort(nums,0,n-1);
for (int num : nums) {
System.out.print(num+" ");
}
}
public static void quickSort(int[] nums, int l, int r){
if(l>=r)
return;
int index = l+r >>1;
int x = nums[index], i = l-1, j = r+1;
while (i<j){
do{
i++;
}while (nums[i]<x);
do{
j--;
}while (nums[j]>x);
if(i<j){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
quickSort(nums,l,j);
quickSort(nums,j+1,r);
}
}