#include "stdio.h"
//交换两个数
void swap(int &a,int &b){
int t=a;
a=b;
b=t;
}
//根据第一个数,把小于第一个数的数放在前面,把打印第一个数的数放在后面
int partition(int *a,int l,int r){
int p=a[l];
int i=l+1;
int j=i;
while (j<=r){
if(p>a[j]){
swap(a[i],a[j]);
i++;
}
j++;
}
swap(a[l],a[i-1]);
return i-1;
}
//快速排序
void quicklysort(int *a,int l,int r){
if(l<r){
int p=partition(a,l,r);
// 排序左边
quicklysort(a,l,p-1);
// 排序右边
quicklysort(a,p+1,r);
}
}
void sort(int *a,int n){
int l=0,r=n-1;
quicklysort(a,l,r);
}
int main(){
int n;
scanf("%d",&n);
int a[10000];
for (int i = 0; i < n; ++i) {
scanf("%d",&a[i]);
}
sort(a,n);
for (int i = 0; i < n; ++i) {
printf("%d\t",a[i]);
}
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)