java快排求调,3,5点re了不知道为啥
查看原帖
java快排求调,3,5点re了不知道为啥
1215102
huyuq楼主2023/11/29 10:34
 import java.io.*;
 import java.util.Random;
class QuickSort {
    public static void quicksort(int left, int right, long[] a) {
      if(left<right){
        int p = partition(a, left, right);
        quicksort(left, p-1, a);
        quicksort(p + 1, right, a);      
      }
    }
     public static int randomPartition(long[] array, int low, int high) {
        Random random = new Random();
        int randomIndex = random.nextInt(high - low + 1) + low;
        swap(array, randomIndex, high);
        return partition(array, low, high);
    }
     public static int partition(long[] array, int low, int high) {
        long pivot = array[high];
        int i = low - 1;
        for (int j = low; j < high; j++) {
            if (array[j] < pivot) {
                i++;
                swap(array, i, j);
            }
        }
        swap(array, i + 1, high);
        return i + 1;
    }
    private static void swap(long[] arr, int i, int j) {
        long temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}
   public class Main {
    public static void main(String[] args) throws IOException{
      BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
      StreamTokenizer st = new StreamTokenizer(br);
         st.nextToken();
        int n=(int)st.nval;
        long[] ac=new long[n+1];
        for(int a=1;a<=n;a++){
          st.nextToken();
        int l=(int)st.nval;
           ac[a]=l;
        }    
        br.close();
        QuickSort.quicksort(1, n, ac);
        PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
        for(int i=1;i<n+1;i++){
            pw.print(ac[i]+" ");
            pw.flush();
        }
        pw.close();
        }
}


2023/11/29 10:34
加载中...