单选题

为了正确实现快速排序,下面横线上的代码应为(    )。

void qsort(vector<int>& arr, int left, int right) {

int i, j, mid;

int pivot;


i = left;

j = right;

mid = (left + right) / 2; // 计算中间元素的索引

pivot = arr[mid]; // 选择中间元素作为基准值


do {

while (arr[i] < pivot) i++;

while (arr[j] > pivot) j--;

if (i <= j) {

swap(arr[i], arr[j]); // 交换两个元素

i++;

j--;

}

} _______________________; // 在此处填入代码

if (left < j) qsort(arr, left, j); // 对左子数组进行快速排序

if (i < right) qsort(arr, i, right); // 对右子数组进行快速排序

}

A

while (i <= mid)

B

while (i < mid)

C

while (i < j)

D

while (i <= j)

赣ICP备20007335号-2