小白我自己写了一个快排函数,不知道为什么就是排不出来,思路貌似有没有问题,求大佬看看。
#include<bits/stdc++.h>
using namespace std;
int i,j,n,R[1001];
int QuickSortPass(int hight,int low){
R[0]=R[low];
while(low<hight){
while(low<hight&&R[hight]>=R[0])hight--;
R[low]=R[hight];
while(low<hight&&R[low]<=R[0])low--;
R[hight]=R[low];
}
R[low]=R[0];
return low;
}
void QuickSort(int s,int t){
if(s<t){
int m=QuickSortPass(s,t);
QuickSort(s,m-1);
QuickSort(m+1,t);
}
}
int main()
{
cin>>n;
for(i=1;i<=n;i++){
cin>>R[i];
}
QuickSort(1,n);
for(i=1;i<=n;i++){
cout<<R[i]<<' ';
}
return 0;
}
输出跟输入一样,求解