#include <iostream>
using namespace std;
void swap(int* a, int* b)
{
int t = *a;
*a = *b;
*b = t;
}
int PARTITION(int a[],int p,int r)
{
int x=a[r];
int i=p-1;
int j;
for(j=p;j<r-1;j++)
{
if(a[j]<=x)
{
i++;
swap(&a[i],&a[j]);
}
}
swap(&a[i+1],&a[r]);
return (i+1);
}
void QUICK_SORT(int a[],int p,int r)
{
if(p<r)
{
int q=PARTITION(a,p,r);
QUICK_SORT(a,p,q-1);
QUICK_SORT(a,q+1,r);
}
}
void show_array(int a[],int size)
{
int i;
for(i=0;i<size;i++)
{
cout << a[i] << endl;
}
}
int main() {
int a[]={10,7,8,9,1,5};
int size=sizeof(a)/sizeof(a[0]);
QUICK_SORT(a,0,size-1);
show_array(a,size);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBzd2FwKGludCogYSwgaW50KiBiKSAgCnsgCmludCB0ID0gKmE7ICAKKmEgPSAqYjsgIAoqYiA9IHQ7ICAKfSAgCgppbnQgUEFSVElUSU9OKGludCBhW10saW50IHAsaW50IHIpCnsKaW50IHg9YVtyXTsKaW50IGk9cC0xOwppbnQgajsKZm9yKGo9cDtqPHItMTtqKyspCnsKCWlmKGFbal08PXgpCgl7CgkJaSsrOwoJCXN3YXAoJmFbaV0sJmFbal0pOwoJfQp9CnN3YXAoJmFbaSsxXSwmYVtyXSk7CnJldHVybiAoaSsxKTsKfQp2b2lkIFFVSUNLX1NPUlQoaW50IGFbXSxpbnQgcCxpbnQgcikKewppZihwPHIpCnsKCWludCBxPVBBUlRJVElPTihhLHAscik7CglRVUlDS19TT1JUKGEscCxxLTEpOwoJUVVJQ0tfU09SVChhLHErMSxyKTsKfQp9Cgp2b2lkIHNob3dfYXJyYXkoaW50IGFbXSxpbnQgc2l6ZSkKewoJaW50IGk7Cglmb3IoaT0wO2k8c2l6ZTtpKyspCgl7CgkJY291dCA8PCBhW2ldIDw8IGVuZGw7CgkJCgl9Cn0KCmludCBtYWluKCkgewoJaW50IGFbXT17MTAsNyw4LDksMSw1fTsKCWludCBzaXplPXNpemVvZihhKS9zaXplb2YoYVswXSk7CglRVUlDS19TT1JUKGEsMCxzaXplLTEpOwoJc2hvd19hcnJheShhLHNpemUpOwoJcmV0dXJuIDA7Cn0=