#include<iostream>
#include<stdio.h>
using namespace std;
//显示数组元素
void show(int *a,int n)
{
for(int i=0;i<n;i++)
{
printf("%d",a[i]);
}
printf("\n");
}
//快排实现
void sort(int *a,int lowIndex,int hightIndex)
{
int i = lowIndex;
int j = hightIndex;
int key = a[i];
while(i<j)
{
while(i<j && a[j]>=key)
{
j--;
//printf("j = %d\n",j);
}
if(i<j)
{
a[i++] = a[j];
}
while(i<j && a[i]<=key)
{
i++;
//printf("i = %d\n",i);
}
if(i<j)
{
a[j--]=a[i];
}
a[i] = key;
sort(a,lowIndex,i-1);
sort(a,i+1,hightIndex);
}
}
//测试
int main()
{
int a[]={1,4,7,2,5,8,3,6,9};
int n = sizeof(a)/sizeof(int);
printf("n = %d\n",n);
show(a,n);
sort(a,0,n-1);
show(a,n);
return 0;
}