Quick actions

cmd+k|ctrl+k

Navigation

Languages

MergeSort

Snippet info

Language

Cpp

Visibility

public

Author

jameeulla3

Created

2024-08-04T05:04:03.742188Z

Updated

2024-08-04T05:41:35.182368Z

#include <iostream>
using namespace std;
int a[]={40,10,86,44,93,26,69,17};
void mergeSort(int begin,int end);
void merge(int begin,int mid,int mid1,int end);
int main() {
   
    int left = 0; int right = 7; 
    mergeSort(left,right);
    for(int i=0;i<8;i++)
    cout<<a[i]<<"\t";
    return 0;
}
void mergeSort(int begin,int end)
{
    int mid; 
    while(begin<end)
    {
        mid = (begin+end)/2;
        mergeSort(begin,mid);
        mergeSort(mid+1,end);
        merge(begin,mid,mid+1,end);
    }
    
}
void merge(int begin,int mid,int mid1,int end)
{
    int first = begin; 
    int second = mid1; 
    int k = 0; 
    int temp[8];
    while(first <= mid && second<=end)
    {
        if(a[first]<a[second])
        {
            temp[k] = a[first];
            first++;
            k++;
        }
        else if(a[first]>a[second])
        {
            temp[k] = a[second];
            second++;
            k++;
        }
        else
        {
            temp[k] = a[second];
            k++;
            temp[k] = a[first];
            k++;
            first++;second++;
        }
    }
        while(first<=mid)
        {
            temp[k] = a[first];
            first++;
            k++;
        }
        while(second<=end)
        {
            temp[k] = a[second];
            second++;
            k++;
        }
      for(int beg=begin, end=0 ; beg<=end ; beg++, end++)
{
a[beg] = temp[end] ;
}
    }

INFO