#include <stdio.h>
#include <stdlib.h>
int Partition(int a[],int p, int r){
int i=p,j=r+1,t;
int x=a[p];
while(1){
while(a[++i]<x&&i<r);
while(a[--j]>x);
if(i>=j)
break;
t=a[i];
a[i]=a[j];
a[j]=t;
}
a[p]=a[j];
a[j]=x;
return j;
}
int main()
{
int n,i;
printf("请输入长度:");
scanf("%d",&n);
printf("请输出数组:");
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
QuickSort(a,0,n-1);
printf("请输出排序结果:");
for(i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
return 0;
}
void QuickSort(int a[],int p, int r){
if(p<r){
int q=Partition(a,p,r);
QuickSort(a,p,q-1);
QuickSort(a,q+1,r);
}
}