QuickSort

 #include<iostream.h>  
 #include<conio.h>  
 int a[15], m, i, j, n, p, v;  
 class quick  
 {  
      protected:  
           int partition(int a[], int, int);  
      public:  
           void get();  
           void sort(int a[], int, int);  
           void disp();  
 };  
 void quick :: get()  
 {  
      cout<<endl<<"Enter the limit : ";  
      cin>>n;  
      cout<<endl<<"Enter the elements :\t";  
      for(i=0; i<n; i++)  
           cin>>a[i];  
 }  
 void quick :: sort(int a[], int p, int q)  
 {  
      if(p<q)  
      {  
           j=partition(a, p, q+1);  
           sort(a, p, j-1);  
           sort(a, j+1, q);  
      }  
 }  
 int quick :: partition(int a[], int m, int p)  
 {  
      v=a[m];  
      i=m;  
      j=p;  
      do  
      {  
           do  
                i++;  
           while(a[i]<v);  
           do  
                j--;  
           while(a[j]>v);  
           if(i<j)  
           {  
                p=a[i];  
                a[i]=a[j];  
                a[j]= p;  
           }  
      }while(i<=j);  
      a[m]=a[j];  
      a[j]=v;  
      return j;  
 }  
 void quick :: disp()  
 {  
      cout<<endl<<endl<<"SORTED ARRAY"<<endl;  
      for(i=0; i<n; i++)  
           cout<<'\t'<<a[i];  
 }  
 void main()  
 {  
      quick q;  
      clrscr();  
      q.get();  
      q.sort(a, 0, n-1);  
      q.disp();  
      getch();  
 }  

Share This!


No comments:

Post a Comment

Code Of The day - Suggest An Output For The Snippet

  #include<stdio.h>   
  int main()   
  {   
   float a=3.15529;   
   printf("%2.1f\n", a);   
   return 0;   
  }   
· A Code Archive - code1archive