Two-way Merge Sort in DSA using C++

Program 1

// Program for Merge Sort 
#include<iostream>
#define clrscr() system("cls")
using namespace std;
void abc(int []);
int main()
{

      int a[500],b[500],c[1000],m,n,i,j,temp,k;
      clrscr();
      again: cout<<"\nEnter limit of first array\n";
      cin>>m;
      if(m>500)
      {
          cout<<"\nInvalid limit please enter  between 1-500\n";
          goto again;
      }
      else
      {
         cout<<"\nEnter element in first array\n";
         for(i=0;i<m;i++)
           cin>>a[i];
         // sorting or first array  
         for(i=0;i<m;i++) 
         {
            for(j=i+1;j<m;j++)
            {
                  if(a[j]<a[i])
                  {
                      temp=a[j];
                      a[j]=a[i];
                      a[i]=temp;
                  }
            }
         }
        //  cout<<"First Sorted Array";
        //  for(i=0;i<m;i++) 
        //    cout<<"\n"<<a[i];
      }
 
       again1: cout<<"\nEnter limit of second array\n";
      cin>>n;
      if(n>500)
      {
          cout<<"\nInvalid limit please enter  between 1-500\n";
          goto again1;
      }
      else
      {
         cout<<"\nEnter element in second array\n";
         for(i=0;i<n;i++)
           cin>>b[i];

          // sorting or second array  
         for(i=0;i<n;i++) 
         {
            for(j=i+1;j<n;j++)
            {
                  if(b[j]<b[i])
                  {
                      temp=b[j];
                      b[j]=b[i];
                      b[i]=temp;
                  }
            }
         }  
        // cout<<"Second Sorted Array";
        //  for(i=0;i<n;i++) 
        //    cout<<"\n"<<b[i];
      }
      //Merege sort       
      i=0;
      j=0;
      k=0;
      while(i<m && j<n)
      {
             if(a[i]<b[j])
                   c[k]=a[i++];
             else
                c[k]=b[j++];

            k++;
    }
      if(i==m)
      {
          while(j<n)
          {
               c[k]=b[j];
               j++;
               k++;
          }
      }
      if(j==n)
      {
           while(i<m)
           {
            c[k]=a[i];
            i++;
            k++;
           }
      }
       cout<<"\n Sorted elements ";
       for(i=0;i<(m+n);i++) 
       {
                cout<<"\n"<<c[i];
       }
     } 

 

courses
Image

DataFlair Team

DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.

Leave a Reply

Your email address will not be published. Required fields are marked *