Tuesday, 21 October 2014

C++ program to implement quick sort

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;
}

No comments:

Post a Comment