代码在本机上一运行就提示Segmentation fault
#include <bits/stdc++.h>
using namespace std;
void paixv(int n,int suo,long long a[],long long res[]){
long long B[100000]={0},C[100000]={0},D[100000]={0};
int b=0,c=0,d=0;
int x=a[0];
for(int i=0;i<n;i++){
if(a[i]>x){
D[d]=a[i];
d++;
}
else if(a[i]<x){
B[b]=a[i];
b++;
}
else{
C[c]=a[i];
c++;
}
}
if(b==1) res[suo]=B[0];
if(d==1) res[suo+b+c]=C[0];
int j=0;
for(int i=b+suo;i<c+b;i++){
res[i]=C[j];
j++;
}
if(b>1) paixv(b,0,B,res);
if(d>1) paixv(d,b+c,D,res);
}
int main() {
int n;
long long a[100000]={0};
cin >> n;
for (int i=0; i<n; i++){
cin >> a[i];
}
paixv(n,0,a,a);
for(int i=0;i<n;i++){
cout << a[i] << " ";
}
cout<<endl;
return 0;
}