源代码 public class QuickSortTest { public void quickSort(int[] arr, int left, int right) { if(left > right) return; int key = arr[left]; //数组第一个元素作为key System.out.println("key = " + key); int i = left, j = right; while(i < j) { //从右往左找到第一个小于key的元素 while(i < j && arr[j] >= key) { j--; } //从左往右找到第一个大于key的元素 while(i < j && arr[i] <= key) { i++; } if(i < j) { swap(arr, i, j); } } //此时i j相等 swap(arr, left, j); //输出每一次排序 // for(int z = 0; z < arr.length; z++) { // System.out.print(arr[z]+","); // } // System.out.println(); quickSort(arr, left, i-1); quickSort(arr, j+1, right); } public void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } public static void main(String[] args) { int arr[] = {3,5,6,7,8,9,1,4,5}; QuickSortTest qs = new QuickSortTest(); qs.quickSort(arr, 0, arr.length-1); } } 运行结果