测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A32268. 为了正确实现快速排序,下面横线上的代码应为( )。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 …

单选题 困难

题目描述

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

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); // 对右子数组进行快速排序

}

选项(单选)

上一题 下一题