Untitled

 avatar
unknown
plain_text
2 years ago
837 B
4
Indexable
void merge(int arr[], int l, int m, int r)    {
         // Your code here
         //[l,m-1] [m,r]
         int temp[r-l+1];
         int i=l;
         int j=m;
         
         for (int itr=0; itr<(r-l+1);itr++){
             if (i<m && j<=r){
                 if (arr[i]<arr[j])
                    temp[itr]=arr[i++];
                 else temp[itr]=arr[j++];
                 
             }
             if (i<m) temp[itr]=arr[i++];
             if (j<=r) temp[itr]=arr[j++];
         }
         for (int itr=0;itr<(r-l+1);itr++){
             arr[itr+l]=temp[itr];
         }
         
    }
    public:
    void mergeSort(int arr[], int l, int r)
    {
        //code here
        if (l>=r) return;
        int mid=(l+r)/2;
        mergeSort(arr, l, mid-1);
        mergeSort(arr, mid, r);
        merge(arr,l,mid, r);
    }
};
Editor is loading...