package com.yk.sort; public class Fast { public static void fastSort(int left, int right, int[] array){ if(left >= right) return; int povit = array[left];//基准数 int i = left; int j = right; //比较 while(i != j){ while(j > i && array[j] >= povit) j--; if(i != j) array[i] = array[j]; while(j > i && array[i] <= povit) i++; if(i != j) array[j] = array[i]; } //i,j相遇,一轮比较结束,变换基准数位置 array[i] = povit; //进行下一轮比较 fastSort(left, i - 1, array); fastSort(i + 1, right, array); } public static void main(String[] args) { int[] array = {5,6,4,8,9,1,10,2,3,9,3}; fastSort(0, array.length - 1, array); for (int ii : array) System.out.print(ii + " "); } }