【问题描述】给定n个元素,快速排序算法实现从小到大排序
【输入形式】第一行输入元素个数n,第二行输入n个元素
【输出形式】按小到大排好序的元素
【样例输入】
3
15 12 20
【样例输出】
12 15 20
代码实现:
#include <iostream>
using namespace std;
#define N 100000
int n;
int a[N];void quick_part(int l,int r){
int p=a[r];
int k=l-1;
for(int j=l;j<r;j++){
if(a[j]<p) swap(a[j],a[++k]);
}
swap(a[r],a[++k]);
if(l<k-1) quick_part(l,k-1);
if(k+1<r) quick_part(k+1,r);
}int main(){
cin>>n;
for(int i=1;i<=n;++i){
cin>>a[i];
}
quick_part(1,n);
for(int i=1;i<=n;++i){
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}