int partition(int * sort, int start, int end)
{
int i=start;
int j=end;
int a=sort[end];
if(i>=j)
return -1;
while(i!=j)
{
while(sort[i]<=a&&i<j)
{
i++;
}
if(i<j)
{
sort[j]=sort[i];
j--;
}
while(sort[j]>a&&i<j)
{
j--;
}
if(i<j)
{
sort[i]=sort[j];
i++;
}
}
sort[j]=a;
return i;
}
void QuickSort(int * sort, int start, int end)
{
int mid=partition(sort, start, end);
if(start!=end && mid!=-1)
{
QuickSort(sort, start, mid-1);
QuickSort(sort, mid+1, end);
}
}
void main()
{
int array[10]={2,5,9,1,3,11,14,7,8,4};
QuickSort(array, 0, 9);
for(int i=0;i<10;i++)
cout<<array[i]<<" ";
}