#include<bits/stdc++.h>
using namespace std;
int a[100001];
int qs(int r[],int low,int high){
int i,j;
i=low;
j=high;
r[0]=r[i];
while(i<j){
while(i<j&&r[j]>=r[0]){
j--;
}
if(i<j){
r[i++]=r[j];
}
while(i<j&&r[i]<=r[0]){
i++;
}
if(i<j){
r[j--]=r[i];
}
}
r[i]=r[0];
if(low<i-1){
qs(r,low,i-1);
}
if(high>i-1){
qs(r,i+1,high);
}
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int h=n,l=1;
qs(a,l,h);
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
快速排序(递归实现)
最新推荐文章于 2024-09-07 16:56:49 发布