排序算法 - 快速排序

排序算法 - 快速排序


思路

动图演示

代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void quickSort(int[] arr, int start, int end) {
int left = start;
int right = end;
if (end - start < 1) return;
int tempValue = arr[start];
while (left != right) {
while (left != right && arr[right] > tempValue) {
right--;
}
swap(arr, left, right);
while (left != right && arr[left] <= tempValue) {
left++;
}
swap(arr, left, right);
}

quickSort(arr, start, left - 1);
quickSort(arr, left + 1, end);
}