如题,为什么key用a[l]会超时而用a[(l+r)/2]不会
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int a[100001];
void mySwap(int &a,int &b){
int temp=a;
a=b;
b=temp;
}
void myQuickSort(int l,int r){
if(l>=r) return;
int i=l,j=r;
int key=a[l];
while (i<=j)
{
while(a[i]<key) i++;
while(a[j]>key) j--;
if(i<=j){
mySwap(a[i],a[j]);
i++;
j--;
}
}
myQuickSort(l,j);
myQuickSort(i,r);
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
myQuickSort(1,n);
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
return 0;
}