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

A29885. 考虑以下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],…

单选题 困难

题目描述

考虑以下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);

      }

}

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

选项(单选)

上一题 下一题