Earn without any Investment!

Wednesday, October 20, 2010

Quick Sort in C++

#include<iostream.h>
#include<conio.h>
class quick
{
public:
int a[20],n,i;
void getdata();
void putdata();
void sort();
void quicksort(int arr[],int low,int up);
void display(int a[],int,int);
};
void quick::getdata()
{
cout<<"\nEnter the number of Elements:";
cin>>n;
cout<<"\nEnter the elements one by one:";
for(i=0;i<n;i++)
{
cin>>a[i];
}
}
void quick::putdata()
{
cout<<"\nUnsorted List :\t";
display(a,0,n-1);
cout<<"\n";
}
void quick::sort()
{
quicksort(a,0,n-1);
cout<<"\nSorted List:\n";
display(a,0,n-1);
cout<<"\n";
}
void quick::quicksort(int arr[],int low,int up)
{
int piv,temp,right,left,pivot=0;
left=low;
right=up;
piv=low;
if(low>=up)
return;
//cout<<"Sublist:\n";
display(arr,low,up);
while(pivot==0)
{
while(arr[piv]<=arr[right]&&piv!=right)
right=right-1;
if(piv==right)
pivot=1;
if(arr[piv]>arr[right])
{
temp=arr[piv];
arr[piv]=arr[right];
arr[right]=temp;
piv=right;
}
while(arr[piv]>=arr[left]&&piv!=left)
left=left+1;
if(piv==left)
pivot=1;
if(arr[piv]<arr[left])
{
temp=arr[piv];
arr[piv]=arr[left];
arr[left]=temp;
piv=left;
}
}
cout<<"\n\nPivot placed is: "<<arr[piv]<<"\n";
display(arr,low,up);
cout<<"\n";
quicksort(arr,low,piv-1);
quicksort(arr,piv+1,up);
}
void quick::display(int a[],int low,int up)
{
int i;
for(i=low;i<=up;i++)
cout<<a[i]<<"\t";
}
void main()
{
clrscr();
quick q;
q.getdata();
q.putdata();
q.sort();
getch();
}

No comments:

Post a Comment