#include<iostream.h>
#include<conio.h>
int a[15], m, i, j, n, p, v;
class quick
{
protected:
int partition(int a[], int, int);
public:
void get();
void sort(int a[], int, int);
void disp();
};
void quick :: get()
{
cout<<endl<<"Enter the limit : ";
cin>>n;
cout<<endl<<"Enter the elements :\t";
for(i=0; i<n; i++)
cin>>a[i];
}
void quick :: sort(int a[], int p, int q)
{
if(p<q)
{
j=partition(a, p, q+1);
sort(a, p, j-1);
sort(a, j+1, q);
}
}
int quick :: partition(int a[], int m, int p)
{
v=a[m];
i=m;
j=p;
do
{
do
i++;
while(a[i]<v);
do
j--;
while(a[j]>v);
if(i<j)
{
p=a[i];
a[i]=a[j];
a[j]= p;
}
}while(i<=j);
a[m]=a[j];
a[j]=v;
return j;
}
void quick :: disp()
{
cout<<endl<<endl<<"SORTED ARRAY"<<endl;
for(i=0; i<n; i++)
cout<<'\t'<<a[i];
}
void main()
{
quick q;
clrscr();
q.get();
q.sort(a, 0, n-1);
q.disp();
getch();
}
QuickSort
Share This!
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment