✏️ 纠错
第 163 题 / 共 201 题
第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);
}
}你真棒!
📝 题目解析
答案:D
考纲知识点:快速排序
解析:第一处:需要将基准值放到正确位置,即交换a[l]和a[j](因为j是最后一个小于基准值的位置),第二处:返回基准值的最终位置j。