#include<bits/stdc++.h>
using namespace std;
void _sort(int a[],int l,int r)
{
if(l>r) return ;
int s=l;
int e=r;
int flag=a[l];
while(l<r)
{
while(l<r&&a[r]>=flag)//从最右边开始 寻找到第一个小于标志位值的点
{
r--;
}
a[l]=a[r];//替换到左边
while(l<r&&a[l]<=flag)//从最左边开始 寻找到第一个大于标志位值的点
{
l++;
}
a[r]=a[l];//替换到右边
}
a[l]=flag;//让中间值为标志位的值
_sort(a,s,l-1);
_sort(a,l+1,e);
}
int main()
{
int a[10]={9,6,3,5,5,4,8,3,2,1};
_sort(a,0,9);
for(int i = 0 ;i<10;i++)
cout<<a[i]<<" ";
}