Advertisement
Guest User

Lab 4= Three Merge

a guest
Feb 17th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. void Merge(int s[],int p,int q,int r)
  4. {
  5.     int n1,n2,i,j,k;
  6.     n1=q-p+1;
  7.     n2=r-q;
  8.  
  9.     int L[100],R[100];
  10.  
  11.     for(i=1;i<=n1;i++)
  12.     {
  13.         L[i]=s[p+i-1];
  14.     }
  15.     for(j=1;j<=n2;j++)
  16.     {
  17.         R[j]=s[q+j];
  18.     }
  19.  
  20.    L[n1+1]=3566121;
  21.    R[n2+1]=3455154;
  22.    i=1;
  23.    j=1;
  24.  
  25.    for(k=p; k<=r; k++)
  26.    {
  27.        if(L[i] <= R[j])
  28.        {
  29.            s[k]=L[i];
  30.            i++;
  31.        }
  32.        else
  33.        {
  34.            s[k]=R[j];
  35.            j++;
  36.        }
  37.    }
  38. }
  39.  void MergeSort(int a[],int p,int r)
  40.  {
  41.      int q,s;
  42.      if(p<r)
  43.      {
  44.          q= ((2*p)+r)/3;
  45.          s=((2*r)+p)/3;
  46.          MergeSort(a,p,q);
  47.          MergeSort(a,q+1,s);
  48.          MergeSort(a,s+1,r);
  49.          Merge(a,p,q,s);
  50.          Merge(a,p,s,r);
  51.  
  52.      }
  53.  }
  54.  int main()
  55.  {
  56.      int m[1000],i,n;
  57.      cout<<"Enter Size: ";
  58.      cin>>n;
  59.      cout<<"\nEnter the numbers for sorting: ";
  60.      for(i=1;i<=n;i++)
  61.      {
  62.          cin>>m[i];
  63.      }
  64.      MergeSort(m,1,n);
  65.      cout<<endl;
  66.      cout<<"The three way Merge Sort is: ";
  67.      for(i=1;i<=n;i++)
  68.      {
  69.          cout<< " "<<m[i];
  70.      }
  71.      cout<<endl;
  72.      return 0;
  73.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement