From 4313fd574327a21efbca2efff7c55a70620eee10 Mon Sep 17 00:00:00 2001 From: Mayank Walia <86161735+mayankwalia@users.noreply.github.com> Date: Tue, 25 Oct 2022 22:16:42 +0530 Subject: [PATCH] Merge Sort Implementation --- merge_sort.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 merge_sort.java diff --git a/merge_sort.java b/merge_sort.java new file mode 100644 index 0000000..9f4358f --- /dev/null +++ b/merge_sort.java @@ -0,0 +1,47 @@ +/* Function to merge the subarrays of a[] */ +void merge(int a[], int beg, int middle, int end) +{ + int i, j, k; + int n1 = middle - begining + 1; + int n2 = end - middle; + + int LeftArray[n1], RightArray[n2]; //temporary arrays + + /* copy data to temp arrays */ + for (int i = 0; i < n1; i++) + LeftArray[i] = a[begining + i]; + for (int j = 0; j < n2; j++) + RightArray[j] = a[middle + 1 + j]; + + i = 0, /* initial index of first sub-array */ + j = 0; /* initial index of second sub-array */ + k = begining; /* initial index of merged sub-array */ + + while (i < n1 && j < n2) + { + if(LeftArray[i] <= RightArray[j]) + { + a[k] = LeftArray[i]; + i++; + } + else + { + a[k] = RightArray[j]; + j++; + } + k++; + } + while (i