#include <iostream.h>
using namespace std;
int Partition(int a[], int beg, int end) //Function to Find Pivot Point
{
int p=beg, pivot=a[beg], loc;
for(loc=beg+1;loc<=end;loc++)
{
if(pivot>a[loc])
{
a[p]=a[loc];
a[loc]=a[p+1];
a[p+1]=pivot;
p=p+1;
}
}
return p;
}
void QuickSort(int a[], int beg, int end)
{
if(beg<end)
{
int p=Partition(a,beg,end); //Calling Procedure to Find Pivot
QuickSort(a,beg,p-1); //Calls Itself (Recursion)
QuickSort(a,p+1,end); //Calls Itself (Recursion)
}
}
void main()
{
clrscr();
int a[100],i,n,beg,end;
cout<<"\n------- QUICK SORT -------\n\n";
cout<<"Enter the No. of Elements : ";
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
beg=1;
end=n;
QuickSort(a,beg,end); //Calling of QuickSort Function
cout<<;"\nAfter Sorting : \n";
for(i=1;i<=n;i++)
{
cout<<a[i]<<endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgUGFydGl0aW9uKGludCBhW10sIGludCBiZWcsIGludCBlbmQpICAgICAgICAgIC8vRnVuY3Rpb24gdG8gRmluZCBQaXZvdCBQb2ludAp7CmludCBwPWJlZywgcGl2b3Q9YVtiZWddLCBsb2M7Cgpmb3IobG9jPWJlZysxO2xvYzw9ZW5kO2xvYysrKQp7CmlmKHBpdm90PmFbbG9jXSkKewphW3BdPWFbbG9jXTsKYVtsb2NdPWFbcCsxXTsKYVtwKzFdPXBpdm90OwoKcD1wKzE7Cn0KfQpyZXR1cm4gcDsKfQoKCnZvaWQgUXVpY2tTb3J0KGludCBhW10sIGludCBiZWcsIGludCBlbmQpCnsKaWYoYmVnPGVuZCkKewppbnQgcD1QYXJ0aXRpb24oYSxiZWcsZW5kKTsgICAgICAgICAgICAgICAgICAgICAgIC8vQ2FsbGluZyBQcm9jZWR1cmUgdG8gRmluZCBQaXZvdAoKUXVpY2tTb3J0KGEsYmVnLHAtMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0NhbGxzIEl0c2VsZiAoUmVjdXJzaW9uKQpRdWlja1NvcnQoYSxwKzEsZW5kKTsgICAgCQkgICAgICAgICAgICAgIC8vQ2FsbHMgSXRzZWxmIChSZWN1cnNpb24pCn0KfQoKCnZvaWQgbWFpbigpCnsKY2xyc2NyKCk7CmludCBhWzEwMF0saSxuLGJlZyxlbmQ7Cgpjb3V0PDwiXG4tLS0tLS0tIFFVSUNLIFNPUlQgLS0tLS0tLVxuXG4iOwpjb3V0PDwiRW50ZXIgdGhlIE5vLiBvZiBFbGVtZW50cyA6ICI7CmNpbj4+bjsKCmZvcihpPTE7aTw9bjtpKyspCnsKY2luPj5hW2ldOwp9CmJlZz0xOwplbmQ9bjsKClF1aWNrU29ydChhLGJlZyxlbmQpOyAgICAgICAgICAgICAgICAgICAgICAgIAkgIC8vQ2FsbGluZyBvZiBRdWlja1NvcnQgRnVuY3Rpb24KCmNvdXQ8PDsiXG5BZnRlciBTb3J0aW5nIDogXG4iOwpmb3IoaT0xO2k8PW47aSsrKQp7CmNvdXQ8PGFbaV08PGVuZGw7Cn0KCn0K