package Sort; import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int A[] = {1,6,9, 2, 3, 1, 5, 4 }; quickSort(A, 0, 7); System.out.println(Arrays.toString(A)); } public static void quickSort(int[] A, int left, int right) { if (left < right) { // 一次划分 int mid = partion(A, left, right); quickSort(A, 0, mid - 1); quickSort(A, mid + 1, right); } } public static void swap(int[] A, int l, int r) { int tmp = A[l]; A[l] = A[r]; A[r] = tmp; } public static int partion(int[] a, int left, int right) { // 轴值,默认选取数组的第一个数字 while (left < right) { while (left < right && a[left] <= a[right]) { right--; } if (left<right){ swap(a, left, right); } while (left < right && a[left] <= a[right]) { left++; } if (left<right){ swap(a, left, right); } } return left; } }