#include<bits/stdc++.h>
using namespace std;
int a[100001];
void qsort(int l, int r){
// 如果没有数就退出
if(l > r) return ;
int i = l, j = r, base = a[l];
// 必定相遇,相遇后情况在循环外处理
while(i != j){
// 确定位置
for(; a[j] >= base && i < j; j--);
for(; a[i] <= base && i < j; i++);
// 两个指针没有相遇
if(i < j) swap(a[i], a[j]);
}
swap(a[l], a[i]);
qsort(l, i - 1);
qsort(i + 1, r);
}
int main(){
cin.tie(0);
std::ios::sync_with_stdio(false);
int n;
cin >> n;
for(int i = 1; i <= n; i++) cin >> a[i];
qsort(1, n);
for(int i = 1; i <= n; i++) cout << a[i] << ' ';
return 0;
}
TLE了3个点。是不是基准数要找中间的啊?