#include<stdio.h>
void swap(int* a,int* b){
int c=*a;
*a=*b;
*b=c;
}
int mid(int a[],int start.int end){
int p=(start+end)/2;
if(a[start]>a[p])swap(&a[start],&a[p]);
if(a[p]>a[end])swap(&a[p],&a[end]);p
if(a[start]>a[p])swap(&a[start],&a[p]);
swap(&a[p],&a[end]);
return a[end];
}
void quick(int a[],int start,int end){
if(start>=end)return;
int gg=mid(a,start,end); //得到flag
int i=start-1;
int j=end;
while(1){
while(a[++i]>gg) ;
while(a[--j]<gg) ;
if(i<j) swap(&a[i],&a[j]);
else break;
}
swap(&a[i],&a[end]); //对应mid()中swap(&a[p],&a[end])
quick(a,start,i-1);
quick(a,i+1,end);
}
int main(){
int a[10]={9,5,7,1,3,2,6,4,8,0};
quick(a,0,9);
int i=0;
while(i<10){
printf("%d\n",a[i]);
return 0;
}