#include <iostream>
#include <cstdio>
using namespace std;
int n;
///算法中的快排,当你在partition的过程中,始终保持着,数组被分成3部分,左边比key值小,并且有序,中间部分比key值大,右侧无序
int partition(int A[],int l,int r)
{
int i=l-1;
int j;
int x=A[r];
for(j=l;j<r;j++)
{
if(A[j]<=x)
{
i++;
int linshi=A[i];
A[i]=A[j];
A[j]=linshi;
}
}
int linshi=A[r];
A[r]=A[i+1];
A[i+1]=linshi;
return i+1;
}
void sort(int A[],int l,int r)
{
if(l<r)
{
int i=partition(A,l,r);
sort(A,l,i-1);
sort(A,i+1,r);
}
}
int main()
{
int A[5]={1,2,3,4,5};
sort(A,0,4);
for(int i=0;i<5;i++)
{
cout<<A[i]<<" ";
}
return 0;
}