快速排序
排序算法-------快速排序
排序目标集合:{6,9,2,8,3,7,4,5,1,0}
排序方法代码:
1 public static void quickSort(Integer[] array, int start, int end) { 2 3 if (start >= end) { // 排序结束条件 4 return; 5 } 6 7 int i = start; // 拷贝一份当前排序数组的起始下标和结束下标 8 int j = end; 9 10 int temp = array[start]; // 拷贝中间值 11 while (i < j) { 12 while (i < j && array[j] >= temp) { 13 j--; 14 } 15 if (i < j) { 16 array[i++] = array[j]; 17 } 18 while (i < j && array[i] <= temp) { 19 i++; 20 } 21 if (i < j) { 22 array[j--] = array[i]; 23 } 24 } 25 array[i] = temp; 26 27 // 递归调用 28 quickSort(array, start, i - 1); 29 quickSort(array, i + 1, end); 30 }
排序过程:
本次排序:中间值为 6
0 1 2 5 3 4 6 7 8 9
本次排序:中间值为 0
0 1 2 5 3 4 6 7 8 9
本次排序:中间值为 1
0 1 2 5 3 4 6 7 8 9
本次排序:中间值为 2
0 1 2 5 3 4 6 7 8 9
本次排序:中间值为 5
0 1 2 4 3 5 6 7 8 9
本次排序:中间值为 4
0 1 2 3 4 5 6 7 8 9
本次排序:中间值为 7
0 1 2 3 4 5 6 7 8 9
本次排序:中间值为 8
0 1 2 3 4 5 6 7 8 9
初学小白,请多指教!