描述
请用“快速排序算法”为若干个小动物的身高进行从低到高的排序。
输入描述
第一行,一个整数n,表示有n个身高(1<=n<=1000)。
第二行,n个大小不同的数字,用空格隔开(0<=身高<=100)。
输出描述
一行,升序排列的身高,用空格隔开。
样例输入 1
6
5 6 2 9 8 1
样例输出 1
1 2 5 6 8 9
代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[101];
void qsort(int left,int right){
if(left>=right) return;
int x=a[left],i=left,j=right;
while(i<j){
while(i<j&&a[j]>=x)j--;
a[i]=a[j];
while(i<j&&a[i]<=x)i++;
a[j]=a[i];
}
a[i]=x;
qsort(left,i-1);qsort(i+1,right);
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
qsort(1,n);
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}