Friday, November 26, 2021

simple program using merge sort in data structure

#include<iostream>

using namespace std;

void merge(int A[], int mid, int low, int high)

{

    int i, j, k, B[100];

    i = low;

    j = mid + 1;

    k = low;


    while (i <= mid && j <= high)

    {

        if (A[i] < A[j])

        {

            B[k] = A[i];

            i++;

            k++;

        }

        else

        {

            B[k] = A[j];

            j++;

            k++;

        }

    }

    while (i <= mid)

    {

        B[k] = A[i];

        k++;

        i++;

    }

    while (j <= high)

    {

        B[k] = A[j];

        k++;

        j++;

    }

    for (int i = low; i <= high; i++)

    {

        A[i] = B[i];

    }

}

void mergeSort(int A[], int low, int high){

    int mid; 

    if(low<high){

        mid = (low + high) /2;

        cout<<"Midle point of this array:"<<A[mid]<<endl;

        cout<<"index of midle point is:"<<mid<<endl;

        mergeSort(A, low, mid);

        mergeSort(A, mid+1, high);

        merge(A, mid, low, high);

    }

}


int main()

{

int n;

cout<<"please enter the size of array:";

cin>>n;

int A[n];

    for(int i=0;i<n;i++)

    {

    cout<<endl;

    cout<<"enter "<<i<<" element in array:";

    cin>>A[i];

}

cout<<endl;

cout<<"\t\tBefore Sorting"<<endl;

  cout<<"[";

  //use loop for print element 

  for(int i=0;i<n;i++)

  {

  cout<<A[i]<<",";

}

cout<<"]";

////////////////////////////////////

cout<<endl<<endl;

   mergeSort(A, 0, n-1);

//print element of array after sorting

cout<<"\t\tAfter Sorting"<<endl;

  cout<<"[";

  //use loop for print element 

  for(int i=0;i<n;i++)

  {

  cout<<A[i]<<",";

}

cout<<"]";

} 

No comments:

Post a Comment