CSP-S 题库快速排序 partition程序阅读题

阅读以下快速排序的 partition(挖坑法)实现,回答子问题:

程序阅读题 第 47 题 · CSP-S 提高级 初赛题库
int partition(int a[],int l,int r){
    int pivot=a[l], i=l, j=r;
    while(i<j){
        while(i<j && a[j]>=pivot) j--;
        a[i]=a[j];
        while(i<j && a[i]<=pivot) i++;
        a[j]=a[i];
    }
    a[i]=pivot;
    return i;
}
  • 基准 pivot 选取的是哪个元素?
    答案:区间首元素 a[l]
    解析:以 a[l] 作为基准值。
  • 函数返回值表示什么含义?
    答案:基准最终归位的下标(分界点)
    解析:返回 pivot 的最终位置,左侧均 ≤ 它、右侧均 ≥ 它。
  • 若原数组已升序,快速排序整体最坏时间复杂度是多少?
    答案:O(n^2)
    解析:每次只把区间减少 1,递归深度退化为 O(n)。

本题收录于「CSP-S 提高级 初赛题库」,共 51 道题,全部提供答案与解析。可进入在线练习系统按知识点随机组卷、自动批改并归集错题。

进入在线练习 查看完整试卷 本类全部题目