update quick sort
This commit is contained in:
		| @@ -16,7 +16,7 @@ import java.util.Arrays; | |||||||
|  */ |  */ | ||||||
| public class QuickSort { | public class QuickSort { | ||||||
|     public static void main(String[] args) { |     public static void main(String[] args) { | ||||||
|         int[] arr = {4, 9, 1, 6, 8, 2}; |         int[] arr = {4, 9, 1, 8, 6, 2}; | ||||||
|         sort(arr, 0, arr.length - 1); |         sort(arr, 0, arr.length - 1); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -47,26 +47,23 @@ public class QuickSort { | |||||||
|         int i = l, j = r, |         int i = l, j = r, | ||||||
|                 // 一般选择数组左边界作为基准 |                 // 一般选择数组左边界作为基准 | ||||||
|                 k = l; |                 k = l; | ||||||
|         int p = arr[k]; |  | ||||||
|  |  | ||||||
|         while (l < r) { |         while (l < r) { | ||||||
|             // 首先循环递减右边界,直到找到小于基准的元素,相互交换 |             // 首先循环递减右边界,直到找到小于基准的元素,相互交换 | ||||||
|             while (l < r && arr[r] >= p) { |             while (l < r && arr[r] >= arr[k]) { | ||||||
|                 r--; |                 r--; | ||||||
|             } |             } | ||||||
|             arr[k] = arr[r]; |             swap(arr, k, r); | ||||||
|             k = r; |             k = r; | ||||||
|  |  | ||||||
|             // 其次循环递增左边界,直到找到大于基准的元素,相互交换 |             // 其次循环递增左边界,直到找到大于基准的元素,相互交换 | ||||||
|             while (l < r && arr[l] <= p) { |             while (l < r && arr[l] <= arr[k]) { | ||||||
|                 l++; |                 l++; | ||||||
|             } |             } | ||||||
|             arr[k] = arr[l]; |             swap(arr, k, l); | ||||||
|             k = l; |             k = l; | ||||||
|  |  | ||||||
|             // 循环以上步骤,直到 l 和 r 相遇 |             // 循环以上步骤,直到 l 和 r 相遇 | ||||||
|         } |         } | ||||||
|         arr[k] = p; |         // arr[k] = p; | ||||||
|         System.out.println("Sorting: " + Arrays.toString(arr)); |         System.out.println("Sorting: " + Arrays.toString(arr)); | ||||||
|  |  | ||||||
|         sort(arr, i, k - 1); |         sort(arr, i, k - 1); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user