package Test01;public class QuickSprt { public static void main(String[] args) { int[] arr = { 1, 3, 2, 9, 8, 7, 1, 0,0,2,3,3,1,0,101,100,1,1,001,100 }; // 要排序的数组 QuickSort(arr); for (int i : arr) { System.out.print(i+" "); } } public static void QuickSort(int[] arr) { if (arr == null || arr.length < 2) { return; } else { quickSort(arr, 0, arr.length - 1); } } public static void quickSort(int[] arr, int L, int R) { if (L < R) { int[] p = partition(arr, L, R); quickSort(arr, L, p[0] ); quickSort(arr, p[1] , R); } } public static int[] partition(int[] arr, int L, int R) { int num = arr[(int) (Math .random()*(R-L+1)+L)]; //随机快排 int less = L - 1; int more = R + 1; while (L < more) { if (arr[L] < num) { swap(arr, L++, ++less); } else if (arr[L] > num) { swap(arr, L, --more); } else { L++; } } return new int[] { less, more }; } public static void swap(int arr[], int a, int b) { int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; }}