#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int *data;
int length;
}List;
int getPivotLoc(List &L,int low,int high)
{
L.data[0]=L.data[low];
while(low<high)
{
while(low<high&&L.data[high]>=L.data[0])
{
high--;
}
L.data[low]=L.data[high];
while(low<high&&L.data[low]<=L.data[0])
{
low++;
}
L.data[high]=L.data[low];
}
L.data[low]=L.data[0];
return low;
}
void order(List &L,int low,int high)
{
if(low<high)
{
int PivotLoc;
PivotLoc= getPivotLoc(L,low,high);
order(L,low,PivotLoc-1);
order(L,PivotLoc+1,high);
}
}