C++ program to sort list of numbers using quick sort algorithm.
C++ program to implement quick sort
#include<iostream>
using namespace std;
class sort_list
{
int data[20];
int n;
public:
void get_data();
void quick_sort(int,int);
int get_pivot(int,int);
void display();
int get_n()
{
return n;
}
};
void sort_list::get_data()
{
cout<<"How many elements two be entered ";
cin>>n;
cout<<"Enter the elements ";
for(int i=0;i<n;i++)
cin>>data[i];
}
void sort_list::quick_sort(int first,int last)
{
int pivot;
if(first>=last)
return;
pivot=get_pivot(first,last);
quick_sort(first,pivot-1);
quick_sort(pivot+1,last);
}
int sort_list::get_pivot(int i,int j)
{
int pivot=i++,temp;
while(j>=i)
{
while(data[pivot]>data[i])
i++;
while(data[pivot]<data[j])
j--;
if(i<j)
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
temp=data[pivot];
data[pivot]=data[j];
data[j]=temp;
return j;
}
void sort_list::display()
{
cout<<"Sorted list : ";
for(int i=0;i<n;i++)
cout<<data[i]<<" ";
}
int main()
{
sort_list sort;
sort.get_data();
sort.quick_sort(0,sort.get_n()-1);
sort.display();
return 0;
}
using namespace std;
class sort_list
{
int data[20];
int n;
public:
void get_data();
void quick_sort(int,int);
int get_pivot(int,int);
void display();
int get_n()
{
return n;
}
};
void sort_list::get_data()
{
cout<<"How many elements two be entered ";
cin>>n;
cout<<"Enter the elements ";
for(int i=0;i<n;i++)
cin>>data[i];
}
void sort_list::quick_sort(int first,int last)
{
int pivot;
if(first>=last)
return;
pivot=get_pivot(first,last);
quick_sort(first,pivot-1);
quick_sort(pivot+1,last);
}
int sort_list::get_pivot(int i,int j)
{
int pivot=i++,temp;
while(j>=i)
{
while(data[pivot]>data[i])
i++;
while(data[pivot]<data[j])
j--;
if(i<j)
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
temp=data[pivot];
data[pivot]=data[j];
data[j]=temp;
return j;
}
void sort_list::display()
{
cout<<"Sorted list : ";
for(int i=0;i<n;i++)
cout<<data[i]<<" ";
}
int main()
{
sort_list sort;
sort.get_data();
sort.quick_sort(0,sort.get_n()-1);
sort.display();
return 0;
}
No comments:
Post a Comment