Thursday 20 August 2020

CPP Program to implement merge sort

Source Code :

#include<iostream>
using namespace std;
void swapping(int &a,int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
void display(int *array, int size)
{
for(int i = 0;i<size;i++)
   cout<<array[i]<<" ";
    cout<<endl;
}
void merge(int *array, int l, int m, int r )
{
int i,j,k,nl,nr;
nl = m-l+1; nr = r-m;
int larr[nl], rarr[nr];
for(i=0;i<nl;i++)
  larr[i] = array[l+i];
for(j=0;j<nr;j++)
   rarr[j] = array[m+1+j];
i=0; j=0; k=l;
while(i < nl && j<nr)
{
if(larr[i] <= rarr[j])
{
array[k] = larr[i];
i++;
}
else
{
array[k] = rarr[j];
j++;
}
k++;
while(i<nl) 
{
array[k] = larr[i];
i++; k++;
}
while(j<nr)
{
array[k] = rarr[j];
j++; k++;
}
}

void mergeSort(int *array,int l,int r)
{
int m;
if(l < r)
{
int m = l+(r-1)/2;
mergeSort(array,l,m);
mergeSort(array,m+1,r);
merge(array,l,m,r);
}
}
int main()
{
int n;
cout<< "Enter the number of elements: ";
cin>>n;
int arr[n];
cout<<"Enter elements: "<<endl;
{
for(int i = 0; i<n; i++)
{
cin>>arr[i];
}
}
cout<<"Array before Sorting: ";
display(arr , n);
mergeSort(arr, 0, n-1);
cout<<"Array after Sorting: ";
display(arr , n);
return 0;
}

Program Output : 

No comments:

Post a Comment