#4355. [GESP202506 八级 C++] 第 12 题

[GESP202506 八级 C++] 第 12 题

下面 quick_sort 函数试图实现快速排序算法,两处横线处分别应该填入的是( )。

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

A.

swap(a[l], a[i])
i

B.

swap(a[l], a[j])
i

C.

swap(a[l], a[i])
j

D.

swap(a[l], a[j])
j

{{ select(1) }}

  • A
  • B
  • C
  • D