快速排序
/*
快速排序
*/
#include<stdio.h>
#define N 100
int arr[N];
void quick_sort(int a[],int lower,int higher){
if(lower>=higher) return;
//1建立枢纽,快排使枢纽左右有序
int i=lower,j=higher;
int key=a[i];
while(i<j){
while(a[j]>=key&&i<j) j--; a[i]=a[j];
while(a[i]<=key&&i<j) i++; a[j]=a[i];
}
a[i]=key;
//2递归排枢纽左
quick_sort(a,lower,i-1);
//3递归排枢纽右
quick_sort(a,i+1,higher);
}
int main(){
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
quick_sort(arr,0,n-1);
for(i=0;i<n;i++)
printf("%d ",arr[i]);
return 0;
}