1 public class QuickSortTest{ 2 //比较与交换 3 private static int partition(int[] source, int low, int hight) { 4 int key = source[low]; 5 while (low < hight) { 6 while (low < hight && source[hight] >= key) { 7 hight --; 8 } 9 source[low] = source[hight]; 10 while (low < hight && source[low] <= key) { 11 low ++; 12 } 13 source[hight] = source[low]; 14 } 15 source[low] = key; 16 return low; 17 } 18 //递归 19 public static void quickSort(int[] source, int low, int hight) { 20 if (low < hight) { 21 int result = partition(source, low, hight); 22 quickSort(source, 0, result - 1); 23 quickSort(source, result + 1, hight); 24 } 25 } 26 public static void main(String[] args) { 27 int[] a = {44,22,2,32,54,22,88,77,99,11}; 28 29 quickSort(a, 0, a.length - 1); 30 31 for (int i = 0; i < a.length; i++) { 32 System.out.printf("%d ", a[i]); 33 } 34 } 35 }