请问这样为啥会RE(后两个)
查看原帖
请问这样为啥会RE(后两个)
313622
mtr329楼主2021/1/29 17:56
import java.util.*;
import java.math.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner  = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] ans = new int[100001];
        for(int i = 0; i < n; i++){ans[i] = scanner.nextInt();}
        quickSort(ans, 0, n);
        for(int i = 0; i < n; i++){System.out.print(ans[i] + " ");}
    }

    static void quickSort(int[] ans, int begin, int end){
        if(begin >= end  - 1){return;}
        int low = begin, high = end - 1;

        int temp = ans[low];
        ans[low] = ans[(low + high) / 2];
        ans[(low + high) / 2] = temp;

        int key = ans[low];
        while(low < high){
            while(ans[high] >= key && low < high){high--;}
            if(ans[high] < key){ans[low] = ans[high];}
            while(ans[low] <= key && low < high){low++;}
            if(ans[low] > key){ans[high] = ans[low];}
        }
        ans[low] = key;
        quickSort(ans, begin, low);
        quickSort(ans, low + 1, end);
    }



}





2021/1/29 17:56
加载中...