From d6d3111f517021891c7ae8a0a024b522b26c828e Mon Sep 17 00:00:00 2001 From: hitanshu310 Date: Tue, 4 Feb 2025 02:28:31 +0530 Subject: [PATCH] Adding merge sort practice code --- .../hithomelabs/princeton1/module6/Merge.java | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/module6/src/main/java/com/hithomelabs/princeton1/module6/Merge.java b/module6/src/main/java/com/hithomelabs/princeton1/module6/Merge.java index 5cffa56..380ac31 100644 --- a/module6/src/main/java/com/hithomelabs/princeton1/module6/Merge.java +++ b/module6/src/main/java/com/hithomelabs/princeton1/module6/Merge.java @@ -7,39 +7,6 @@ import java.util.Arrays; public class Merge extends AbstractCustomSorts { @Override public void sort(E[] arr) { - - int N = arr.length; - // * * aux is a helper array required for merge - E[] aux = Arrays.copyOf(arr, N); - mergesort(arr, aux, 0, N-1); - - } - - private void mergesort(E[] arr, E[] aux, int lo, int hi) { - - if (hi <= lo) return; - int mid = lo + (hi - lo)/2; - mergesort(arr, aux, lo, mid); - mergesort(arr, aux, mid+1, hi); - merge(arr, aux, lo, mid, hi); - - } - - private void merge(E[] arr, E[] aux, int lo, int mid, int hi) { - - // * * creating backup of original array - for (int i = lo; i <= hi; i++) - aux[i] = arr[i]; - - int i = lo; - int j = mid+1; - for (int k = lo; k <= hi; k++){ - // * If i has already reached mid, no need to compare we insert at pointer k - if(i > mid) arr[k] = aux[j++]; - else if(j > hi) arr[k] = aux[i++]; - else if(less((Comparable) aux[i], aux[j])) arr[k] = aux[i++]; - else arr[k] = aux[j++]; - } } }