#include<iostream.h>
#include<stdio.h>
#include<conio.h>
class QuickSort{
    public:
        int no_of_elements;
        int elements[10];
    public:
        void getarray();
        void sortit(int [], int, int);
    void partition(int [],int,int, int&);
    void display();
};
void QuickSort::getarray()
{
    cout<<"How many elements?: ";
    cin>>no_of_elements;
    cout<<"Insert array of element to sort: ";
    for(int i=0;i<no_of_elements;i++)
    {
    cin>>elements[i];
    }

}

void QuickSort::sortit(int x[], int lb, int ub)


{


    int j;
    if(lb >= ub)
     return;
    display();
    partition(x,lb,ub,j);
    sortit(x,lb,j-1);
    sortit(x,j+1,ub);

 }

void QuickSort::partition(int data[],int too_big_index,int too_small_index, int &pj)
{
     int j, pivot, temp, temp1;
     pivot=data[too_big_index];
     while(too_small_index > too_big_index)
     {
       while(data[too_big_index] <= pivot)
         ++too_big_index;
       while(data[too_small_index] >pivot)
         --too_small_index;
       if(too_big_index < too_small_index)
       {
        temp = data[too_big_index];
        data[too_big_index] = data[too_small_index];
        data[too_small_index] = temp;
    }
      }
      temp1=data[too_small_index];
      data[too_small_index]=pivot;
      data[too_big_index]=temp1;
      pj=too_small_index;
      //data[too_big_index]=data[too_small_index];
      //data[too_small_index]=pivot;

}

void QuickSort::display(){
    for(int i = 0 ; i < no_of_elements; i++){
    cout<<elements[i]<<" ";
    }
    cout<<endl;
    getch();
}
void main()
{
   QuickSort QS;
   clrscr();
    QS.getarray();
    cout<<"Sorting is given in step by step showing each iteration"<<endl;
    QS.sortit(QS.elements,0,QS.no_of_elements-1);
    QS.display();
    getch();
 }


public:
    int no_of_elements;
    int elements[10];
public:
    void getarray();
    void sortit(int [], int, int);
void partition(int [],int,int, int&);
void display();

void QuickSort::getarray()

{


cout<<"How many elements?: ";
cin>>no_of_elements;
cout<<"Insert array of element to sort: ";
for(int i=0;i<no_of_elements;i++)
{
cin>>elements[i];
}


}

void QuickSort::sortit(int x[], int lb, int ub)

{


int j;
if(lb >= ub)
 return;
display();
partition(x,lb,ub,j);
sortit(x,lb,j-1);
sortit(x,j+1,ub);



}

void QuickSort::partition(int data[],int too_big_index,int too_small_index, int &pj)

{


 int j, pivot, temp, temp1;
 pivot=data[too_big_index];
 while(too_small_index > too_big_index)
 {
   while(data[too_big_index] <= pivot)
     ++too_big_index;
   while(data[too_small_index] >pivot)
     --too_small_index;
   if(too_big_index < too_small_index)
   {
    temp = data[too_big_index];
    data[too_big_index] = data[too_small_index];
    data[too_small_index] = temp;
}
  }
  temp1=data[too_small_index];
  data[too_small_index]=pivot;
  data[too_big_index]=temp1;
  pj=too_small_index;
  //data[too_big_index]=data[too_small_index];
  //data[too_small_index]=pivot;



}

void QuickSort::display()

{


for(int i = 0 ; i < no_of_elements; i++){
cout<<elements[i]<<" ";
}
cout<<endl;
getch();


}

void main()

{

QuickSort QS;
clrscr();
QS.getarray();
cout<<"Sorting is given in step by step showing each iteration"<<endl;
QS.sortit(QS.elements,0,QS.no_of_elements-1);
QS.display();
getch();

}

Do you have a question?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.