#4307. [GESP202412 八级 C++] 第 14 题

[GESP202412 八级 C++] 第 14 题

下面的快速排序程序中,两处横线处分别应填入的是( )。

void quick_sort(int a[], int n) {
    if (n <= 1)
        return;
    int pivot = 0, l = 0, r = n - 1;
    while (________) { // 在此处填入选项
        while (r > pivot && a[r] >= a[pivot])
            r--;
        if (r > pivot) {
            int temp = a[pivot];
            a[pivot] = a[r];
            a[r] = temp;
            pivot = r;
        }
        while (l < pivot && a[l] <= a[pivot])
            l++;
        if (l < pivot) {
            int temp = a[pivot];
            a[pivot] = a[l];
            a[l] = temp;
            pivot = l;
        }
    }
    quick_sort(a, pivot);
    quick_sort(________); // 在此处填入选项
}

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

{{ select(1) }}

  • A
  • B
  • C
  • D