Sunday, 2 September 2012

Quick sort


#include<iostream.h>
#include<conio.h>

class quick
{
private:
    int a[50],i,j,n;
public:
    void read();
    void sort(int b[],int left,int right);
    void display();
};

void quick::read()
{
    cout<<"Enter how many elements you want to sort : ";
    cin>>n;
    cout<<"Enter "<<n<<" elements to sort : ";
    for(int i=0;i<n;i++)
        cin>>a[i];
    sort(a,0,n);
}

void quick::sort(int b[],int left,int right)
{
    int i,j,key;
    i=left;
    j=right;
    key=b[left];
    do
    {
      do
        {
         j--;
        }while(b[j]>key);
      int t;
      if(i<j)
      {
        t=b[j];
        b[j]=b[i];
        b[i]=t;
      }
      if(i<j)
      {
        do
          {
           i++;
          }while(b[i]<key);
      }
      if(i<j)
      {
         t=b[i];
         b[i]=b[j];
         b[j]=t;
      }
    }while(i<j);
    if(j-left>1)
       sort(b,left,j);
    if(right-j>1)
       sort(b,j+1,right);
}

void quick::display()
{
    cout<<"Sorted elements are : ";
    for(int i=0;i<n;i++)
        cout<<a[i]<<" ";
}

void main()
{
quick q;
clrscr();
q.read();
q.display();
getch();
}

No comments:

Post a Comment