下面快速排序程序中,两处横线分别应填入:
void quick_sort(int a[], int n) {
if (n <= 1) return;
int pivot = 0, l = 0, r = n - 1;
while (________) { // 横线1
while (r > pivot && a[r] >= a[pivot]) r--;
if (r > pivot) { /* swap a[pivot],a[r]; pivot=r; */ }
while (l < pivot && a[l] <= a[pivot]) l++;
if (l < pivot) { /* swap a[pivot],a[l]; pivot=l; */ }
}
quick_sort(a, pivot);
quick_sort(________); // 横线2
}
- A. l < r ;a + pivot + 1, n - pivot - 1
- B. l < r ;a + pivot + 1, n - pivot
- C. l <= r ;a + pivot + 1, n - pivot - 1
- D. l <= r ;a + pivot + 1, n - pivot
正确答案:A