数据:
4
4 3 2 1
代码:
#include <bits/stdc++.h>
using namespace std;
long long n,m[1001],x,y,z;
bool xl(long long left,long long right){
for(long long i = left+1;i<=right;i++){
if(m[i]<m[i-1]){
return false;
}
}
return true;
}
void faster(long long left,long long right){
if(xl(left,right)){
return;
}
long long stand = left,i = left+1,j = right,center;
while(i<j){
while(m[i]<=m[stand]){
if(i==j){
center = i;
break;
}
i++;
}
while(m[j]>=m[stand]){
if(j==i){
center = j-1;
break;
}
j--;
}
if(i<j){
swap(m[i],m[j]);
i++;
j--;
}
}
swap(m[stand],m[center]);
faster(left,center-1);
faster(center+1,right);
return;
}
int main(){
cin>>n;
for(long i = 1;i<=n;i++){
cin>>m[i];
}
faster(1,n);
for(long long i = 1;i<=n;i++){
cout<<m[i]<<" ";
}
return 0;
}