Showing posts with label Sortings. Show all posts

Shell Sort

Tuesday, 29 April 2014
Posted by Naveen's Blogs
   #include< iostream.h > 
    #include< constream.h > 
    void read(int a[10],int n) 
    { 
      cout << "reading\n"; 
      for(int i=0;i < n;i++) 
        cin >> a[i]; 
    } 
    void display(int a[10],int n) 
    { 
      for(int i=0;i < n;i++) 
        cout << a[i] <<"\t"; 
    } 
    void shellsort(int a[10],int n) 
    { 
      int gap=n/2; 
      do 
      { 
        int swap; 
        do 
        { 
          swap=0; 
          for(int i=0;i < n-gap;i++) 
          if(a[i] > a[i+gap]) 
          { 
            int t=a[i]; 
            a[i]=a[i+gap]; 
            a[i+gap]=t; 
            swap=1; 
          } 
        } 
        while(swap); 
      } 
      while(gap=gap/2); 
    } 
    void main() 
    { 
      int a[10]; 
      int n; 
      clrscr(); 
      cout<<"enter n\n"; 
      cin>>n; 
      read(a,n); 
      cout<<"before sorting\n"; 
      display(a,n); 
      shellsort(a,n); 
      cout<<"\nafter sorting\n"; 
      display(a,n); 
      getch(); 
    }

Selection Sort

Posted by Naveen's Blogs
   #include < iostream.h > 
    const int MAX = 10 ; 
    class array 
    { 
      private : 
        int arr[MAX] ; 
        int count ; 
      public : 
        array( ) ; 
        void add ( int item ) ; 
        void sort( ) ; 
        void display( ) ; 
    } ; 
    array :: array( ) 
    { 
      count = 0 ; 
      for ( int i = 0 ; i < MAX ; i++ ) 
        arr[i] = 0 ; 
    } 
    void array :: add ( int item ) 
    { 
      if ( count < MAX ) 
      { 
        arr[count] = item ; 
        count++ ; 
      } 
      else 
        cout << "\nArray is full" << endl ; 
    } 
    void array :: sort( ) 
    { 
      int temp ; 
      for ( int i = 0 ; i <= count - 2 ; i++ ) 
      { 
        for ( int j = i + 1 ; j <= count - 1 ; j++ ) 
        { 
          if ( arr[i] > arr[j] ) 
          { 
            temp = arr[i] ; 
            arr[i] = arr[j] ; 
            arr[j] = temp ; 
          } 
        } 
      } 
    } 
    void array :: display( ) 
    { 
      for ( int i = 0 ; i < count ; i++ ) 
        cout << arr[i] << " " ; 
      cout << endl ; 
    } 
    void main( ) 
    { 
      array a ; 
      a.add ( 25 ) ; 
      a.add ( 17 ) ; 
      a.add ( 31 ) ; 
      a.add ( 13 ) ; 
      a.add ( 2 ) ; 
      cout << "\nSelection sort.\n" ; 
      cout << "\nArray before sorting:" << endl ; 
      a.display( ) ; 
      a.sort( ) ; 
      cout << "\nArray after selection sorting:" << endl ; 
      a.display( ) ; 
    }

Quick Sort

Posted by Naveen's Blogs
#include 
   #include 
   #include 
   #include 
   int Partition(int low,int high,int arr[]); 
   void Quick_sort(int low,int high,int arr[]); 
   void main() 
   { 
     int *a,n,low,high,i; 
     clrscr(); 
     cout<<"Quick Sort Algorithm";<< endl 
     cout<<"Enter number of elements:"; 
     cin>>n; 
     a=new int[n]; 
     /* cout<<"enter the elements:"; 
     for(i=0;i< n;i++) 
     cin>>a;*/ 
     for(i=0;i < n;i++) 
     a[i]=rand()%100; 
     clrscr(); 
     cout<<"Initial Order of elements"; 
      for(i=0;i< n;i++) 
      cout<< a[i] <<" "; 
        cout <<""; 
     high=n-1; 
     low=0; 
     Quick_sort(low,high,a); 
     cout <<"Final Array After Sorting:"; 
        for(i=0;i < n;i++) 
        cout << a[i] <<" "; 
     getch(); 
   } 
   /*Function for partitioning the array*/ 
   int Partition(int low,int high,int arr[]) 
   
   { 
      int i,high_vac,low_vac,pivot/*,itr*/; 
      pivot=arr[low]; 
      while(high>low) 
      { 
        high_vac=arr[high]; 
        while(pivot< high_vac) 
        { 
          if(high < =low) break; 
          high--; 
          high_vac=arr[high]; 
        } 
        arr[low]=high_vac; 
        low_vac=arr[low]; 
        while(pivot > low_vac) 
        { 
          if(high < =low) break; 
          low++; 
          low_vac=arr[low]; 
        } 
        arr[high]=low_vac; 
      } 
      arr[low]=pivot; 
      return low; 
   } 
   void Quick_sort(int low,int high,int arr[]) 
   { 
      int Piv_index,i; 
      if(low < high) 
      { 
        Piv_index=Partition(low,high,arr); 
        Quick_sort(low,Piv_index-1,arr); 
        Quick_sort(Piv_index+1,high,arr); 
      } 
   }

Merge Sort

Posted by Naveen's Blogs
   #include <iostream.h> 
    int a[50]; 
    void merge(int,int,int); 
    void merge_sort(int low,int high) 
    { 
      int mid; 
      if(low<high) 
      { 
        mid=(low+high)/2; 
        merge_sort(low,mid); 
        merge_sort(mid+1,high); 
        merge(low,mid,high); 
      } 
    } 
    void merge(int low,int mid,int high) 
    { 
      int h,i,j,b[50],k; 
      h=low; 
      i=low; 
      j=mid+1; 
      while((h<=mid)&&(j<=high)) 
      { 
        if(a[h]<=a[j]) 
        { 
          b[i]=a[h]; 
          h++; 
        } 
        else 
        { 
          b[i]=a[j]; 
          j++; 
        } 
        i++; 
      } 
      if(h>mid) 
      { 
        for(k=j;k<=high;k++) 
        { 
          b[i]=a[k]; 
          i++; 
        } 
      } 
      else 
      { 
        for(k=h;k<=mid;k++) 
        { 
          b[i]=a[k]; 
          i++; 
        } 
      } 
      for(k=low;k<=high;k++) 
      a[k]=b[k]; 
    } 
    void main() 
    { 
      int num,i; 
      cout<<"MERGE SORT PROGRAM"<<endl; 
      cout<<"Please Enter THE NUMBER OF ELEMENTS you want to sort [THEN 
      PRESS ENTER]:"<<endl; 
      cin>>num; 
      cout<<endl; 
      cout<<"Now, Please Enter the ( "<< num <<" ) numbers (ELEMENTS) [THEN 
      PRESS ENTER]:"<<endl; 
      for(i=1;i<=num;i++) 
      { 
        cin>>a[i] ; 
      } 
      merge_sort(1,num); 
      cout<<endl; 
      cout<<"So, the sorted list (using MERGE SORT) will be :"<<endl; 
      cout<<endl<<endl; 
      for(i=1;i<<=num;i++) 
      cout<<a[i]<<" "; 
      cout<<endl<<endl<<endl<<endl; 
    }

Insertion Sort

Posted by Naveen's Blogs
  #include < iostream.h > 
    const int MAX = 10 ; 
    class array 
    { 
      private : 
        int arr[MAX] ; 
        int count ; 
      public : 
        array( ) ; 
        void add ( int item ) ; 
        void sort( ) ; 
        void display( ) ; 
    } ; 
    array :: array( ) 
    { 
      count = 0 ; 
      for ( int i = 0 ; i < MAX ; i++ ) 
        arr[i] = 0 ; 
    } 
    void array :: add ( int item ) 
    { 
      if ( count < MAX ) 
      { 
        arr[count] = item ; 
        count++ ; 
      } 
      else 
        cout << "\nArray is full" << endl ; 
    } 
    void array :: sort( ) 
    { 
      int temp ; 
      for ( int i = 1 ; i <= count - 1 ; i++ ) 
      { 
        for ( int j = 0 ; j < i ; j++ ) 
        { 
          if ( arr[j] > arr[i] ) 
          { 
            temp = arr[j] ; 
            arr[j] = arr[i] ; 
            for ( int k = i ; k > j ; k-- ) 
              arr[k] = arr[k - 1] ; 
            arr[k + 1] = temp ; 
          } 
        } 
      } 
    } 
    void array :: display( ) 
    { 
      for ( int i = 0 ; i < count ; i++ ) 
        cout << arr[i] << "\t" ; 
      cout << endl ; 
    } 
    void main( ) 
    { 
      array a ; 
      a.add ( 25 ) ; 
      a.add ( 17 ) ; 
      a.add ( 31 ) ; 
      a.add ( 13 ) ; 
      a.add ( 2 ) ; 
      cout << "\nInsertion sort.\n" ; 
      cout << "\nArray before sorting:" << endl ; 
      a.display( ) ; 
      a.sort( ) ; 
      cout << "\nArray after insertion sorting:" << endl ; 
      a.display( ) ; 
    }

    #include <iostream> 
    using namespace std; 
    template <class X> 
    void bubble(X *data, int size) 
    { 
      register int a, b; 
      X t; 
      for(a=1; a < size; a++) 
       for(b=size-1; b >= a; b--) 
     if(data[b-1] > data[b]) 
     { 
       t = data[b-1]; 
       data[b-1] = data[b]; 
       data[b] = t; 
     } 
    } 
    int main() 
    { 
      int i[] = {3, 2, 5, 6, 1, 8, 9, 3, 6, 9}; 
      double d[] = {1.2, 5.5, 2.2, 3.3}; 
      int j; 
      bubble(i, 10); // sort ints 
      bubble(d, 4); // sort doubles 
      for(j=0; j<10; j++) 
      cout << i[j] << ' '; 
      cout << endl; 
      for(j=0; j<4; j++) 
      cout << d[j] << ' '; 
      cout << endl; 
      return 0; 
    }

Welcome to My Blog

Popular Post

Blogger templates

Powered by Blogger.

- Copyright © Data Structures using C++ -Robotic- Powered by Blogger - Designed by NAVEEN KUMAR -

6