Florian18 @ 2023-11-23 23:12:08
#include<bits/stdc++.h>
#define rep(i,m,n) for(int i=(m);i<=(n);i++)
using namespace std;
long long n=0,a[100000]={0};
void qs(int l,int r)
{
int lt=l,rt=r,mid=a[l+r>>1];
while(lt<=rt)
{
while(a[lt]<mid) lt++;
while(a[rt]>mid) rt--;
if(lt<=rt)
{
swap(a[lt],a[rt]);
lt++,rt--;
}
}
if(l<rt)qs(l,rt);
if(r>lt)qs(lt,r);
}
int main(){
scanf("%d",&n);
rep(i,1,n) scanf("%d",&a[i]);
qs(1,n);
rep(i,1,n) printf("%d ",a[i]);
}
by Florian18 @ 2023-11-23 23:12:32
写的是快速排序
by HYdroKomide @ 2023-11-24 08:08:41
@Florian18 数组开小了。而且尽量随机选取mid吧,不然容易被卡