#include <iostream>
using namespace std;
int part(int a[],int first,int ending)//将第一个位置得值作为轴值
{
int i=first,j=ending,temp;
while(i<j)
{
while(i<j&&a[i]<=a[j])// 右侧扫描
j--;
if(a[i]>a[j])// 将较小的记录交换到前面
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
i++;
}
while(i<j&&a[i]<=a[j]) //左侧扫描
i++;
if(a[i]>a[j])// 将较大的记录交换到后面
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
j--;
}
}
return i;//第一次划分后轴值所在的位置
}
void Quick_sort(int a[],int first,int ending)
{
int povit;
if(first<ending)
{
povit=part(a,first,ending);
Quick_sort(a,first,povit-1);
Quick_sort(a,povit+1,ending);
}
}
int main()
{
int a[10]={10,9,8,7,6,5,4,3,2,1};
int first=0,ending=9;
Quick_sort(a,first,ending);
for(int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}