void quickSort(int a[], int l, int r) {
if (l >= r) return;
int pivot = a[l], i = l, j = r;
while (i < j) {
while (i < j && a[j] >= pivot) ③ ;
a[i] = a[j];
while (i < j && a[i] <= pivot) ④ ;
a[j] = a[i];
}
a[i] = pivot;
⑤ ; // 递归处理左半部分
⑥ ; // 递归处理右半部分
}
- ③ ________________________ ④ ________________________
- ⑤ ________________________ ⑥ ________________________
答案解析
③ 从右向左找小于 pivot 的元素,未找到则 j--;④ 从左向右找大于 pivot 的元素,未找到则 i++;⑤ 左半递归 quickSort(a, l, i-1);⑥ 右半递归 quickSort(a, i+1, r)。