#include<iostream>
#include<cstring>
using namespace std;
void QuickSort(int *a,int low,int high);
int main()
{
int a[]={4,5,8,3,6,7,9,5};
int len=sizeof(a)/sizeof(int);
cout<<"Befor sort:";
for(int i=0;i<len;i++)
cout<<a[i]<<" ";
cout<<endl;
QuickSort(a,0,len-1);
cout<<"After sort:";
for(int i=0;i<sizeof(a)/sizeof(int);i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
void QuickSort(int *a,int low,int high)
{
if(low<high)
{
int i=low,j=high;
int key=a[i];
while(i<j)
{
while(i<j&&a[j]>=key)
j--;
if(i<j){
a[i]=a[j];
i++;
}
while(i<j&&a[i]<=key)
i++;
if(i<j){
a[j]=a[i];
j--;
}
}
a[i]=key;
QuickSort(a,low,i-1);//对左区间递归排序
QuickSort(a,i+1,high);//对右区间递归排序
for(int i=0;i<8;i++)
cout<<a[i]<<" ";
cout<<endl;
}
}