有 nn 位同学的成绩已经从小到大排好序,现在对它执行下面这段以第一个元素为 pivot 的快速排序,请

问此次排序的时间复杂度是( )。

void quicksort(vector<int>& a, int l, int r) {                           if (l >= r) return;                                                   int pivot = a[l];                                                     int i = l, 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]);                                       }                                                                     swap(a[l], a[i]);                                                     quicksort(a, l, i - 1);                                               quicksort(a, i + 1, r);                                            }                                                                     
填写答案