GESP 五级 · GESP 202412 C++ 五级 第 9 题

选择题 · 答案 A · 考点:函数与递归、算法、快速排序

← 整套速查表 GESP 五级 全部真题

题目

考虑以下 C++ 代码实现的快速排序算法:

int partition(vector<int>& arr, int left, int right) {
    int pivot = arr[right]; // 基准值
    int i = left - 1;

    for (int j = left; j < right; j++) {
        if (arr[j] < pivot) {
            i++;
            swap(arr[i], arr[j]);
        }
    }
    swap(arr[i + 1], arr[right]);
    return i + 1;
}

// 快速排序
void quickSort(vector<int>& arr, int left, int right) {
    if (left < right) {
        int pi = partition(arr, left, right);
        quickSort(arr, left, pi - 1);
        quickSort(arr, pi + 1, right);
    }
}

以下关于快速排序的说法,正确的是( )。

答案:A

考点

函数与递归算法快速排序

解题思维

分析时间复杂度时关注循环层数和每层迭代次数,递归算法则分析递归树。注意最坏/最好/平均情况的区别。

常见错误

分析复杂度时注意外层循环和内层循环的关联。例如内外两层都到n的循环不一定是O(n²),要看内层是否每次都在缩小。

详细解析(节选)

【考点】递归|算法复杂度|快速排序

1. 🎯 考纲定位(考点定位)

GESP 五级《算法基础》递归章节。命题人想卡住"只记结论不读代码"的考生——很多学生把快排当黑盒公式背,以为"快排就是 O(n log n)",却看不出递归结构。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断