@[littlejohn](/user/1159387) 你没随机化
by Iwara @ 2024-02-23 08:56:16
@[Iwara](/user/252549) 不是随便选的基准数吗
by littlejohn @ 2024-02-23 08:59:34
@[littlejohn](/user/1159387) 是随机,不是随便
by Iwara @ 2024-02-23 09:00:21
@[Iwara](/user/252549) 哦哦
by littlejohn @ 2024-02-23 09:01:28
```cpp
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MAXN=1e5+5;
ll n;
ll a[MAXN],b[MAXN],pos,mid1,mid2;
void sort(ll l,ll r){
if(l>=r)return;
ll p=l+rand()%(r-l+1);
// cout<<a[p]<<endl;
pos=l;
for(int i=l;i<=r;i++)if(a[i]<a[p])b[pos++]=a[i];
mid1=pos-1;
for(int i=l;i<=r;i++)if(a[i]==a[p])b[pos++]=a[i];
mid2=pos;
for(int i=l;i<=r;i++)if(a[i]>a[p])b[pos++]=a[i];
for(int i=l;i<=r;i++)a[i]=b[i];
// for(int i=1;i<=n;i++)cout<<a[i]<<" ";
// cout<<endl;
sort(l,mid1),sort(mid2,r);
return;
}
int main(){
srand(time(NULL));
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
sort(1,n);
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
return 0;
}
```
可以参考一下我写的
by Iwara @ 2024-02-23 09:01:44
原来是这样,我也是34tle,基数一直固定的第一个,怪不得。感谢感谢
by A1000062 @ 2024-02-25 10:49:06