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

A67921. 有n位同学的成绩已经从小到大排好序,现在对它执行下面这段以第一个元素为 pivot 的快速排序,请 问此次排序的时间复杂度是( )。1 void quicksort(vector<int>& a, int l, int r) {

单选题

题目描述

有n位同学的成绩已经从小到大排好序,现在对它执行下面这段以第一个元素为 pivot 的快速排序,请 问此次排序的时间复杂度是( )。

1 void quicksort(vector<int>& a, int l, int r) {
2  if (l >= r) return;
3  int pivot = a[l];
4  int i = l, j = r;
5  while (i < j) {
6   while (i < j && a[j] >= pivot) j--;
7   while (i < j && a[i] <= pivot) i++;
8   if (i < j) swap(a[i], a[j]);
9  }
10  swap(a[l], a[i]);
11  quicksort(a, l, i - 1);
12  quicksort(a, i + 1, r);
13 }

选项(单选)