1. 双路排序
partition有两种思路,一种是从某侧循环,还有一种是双路排序(从两端往中间逼近)
//从两侧向中间逼近
int Paritition(int A[], int low, int high) {
int pivot = A[low];
while (low < high) {
while (low < high && A[high] >= pivot) {
--high;
}
A[low] = A[high];
while (low < high && A[low] <= pivot) {
++low;
}
A[high] = A[low];
}
A[low] = pivot;
return low;
}
【引用】
[1] 代码quickSort.h