From 124b87d836890d1cd019f003deabc5eef39896ef Mon Sep 17 00:00:00 2001 From: Dnyaneshwar Ware <62518496+Dnyaneshwar-dev@users.noreply.github.com> Date: Mon, 5 Oct 2020 18:59:11 +0530 Subject: [PATCH] A C++ iterative implementation of merge Sort. MergeSort.cpp --- data_structures/sortings/MergeSort.java | 112 ++++++++++++++++-------- 1 file changed, 74 insertions(+), 38 deletions(-) diff --git a/data_structures/sortings/MergeSort.java b/data_structures/sortings/MergeSort.java index ccfde3f..235354d 100644 --- a/data_structures/sortings/MergeSort.java +++ b/data_structures/sortings/MergeSort.java @@ -1,41 +1,77 @@ -package data_structures.sortings; +/* Merge Sort Iterative Implementation In C++ -public class MergeSort + complexity : O(n) + +*/ +#include +using namespace std; +#define M 10 +void input(int *a) +{ + cout<<"\nArray : "; + for(int i=0;i> a[i]; +} +void merge(int *a) { - /* - * - Complexity O(n log n) - * - Stable sort algorithm - * - Can be used to compute inversion index - */ - static final int INF = Integer.MAX_VALUE; - - static void mergeSort(int[] a, int b, int e) - { - if(b < e) - { - int q = (b + e) / 2; - mergeSort(a, b, q); - mergeSort(a, q + 1, e); - merge(a, b, q, e); - } - } - - - static void merge(int[] a, int b, int mid, int e) + int tmp[M],i,j,k,size=1; + int l1,u1,l2,u2; + while(size