From d9ceae48a9800b391a57cd83faff4ea62b2e839b Mon Sep 17 00:00:00 2001
From: Haley Glavina <HaleyGlavina@Haleys-MacBook-Pro.local>
Date: Tue, 27 Feb 2018 15:45:52 -0500
Subject: [PATCH] Haley adjusted mergesort

---
 src/sort/MergeSort.java | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/src/sort/MergeSort.java b/src/sort/MergeSort.java
index 34de5f9..b3c7db4 100644
--- a/src/sort/MergeSort.java
+++ b/src/sort/MergeSort.java
@@ -4,20 +4,33 @@ public class MergeSort{
 	
 	private static Comparable[] aux;
 	
-	public static void merge(Comparable x, int n, GeneralCompare gc){
+	public static void merge(Comparable[] x, int lo, int hi, GeneralCompare gc){
 		
+		int n = hi - lo; 
 		aux = new Comparable[n];
-		
+
 		if(n <= 1)
 			return;
-		int j = (n/2) + 1, i = 0;
-		merge(gc, j);
-		merge(gc, j+1);
+		// Recursively merge each half of the array
+		int mid = (n/2) + 1;
+		merge(x, lo, mid, gc);
+		merge(x, mid+1, hi, gc);
 		
+		// Fill auxiliary array
 		for(int k = 1; k <= n; k++){
-			aux[i] = gc[i];
+			aux[k] = x[k];
+		}
+		
+		//
+		while ((mid < hi) | (lo < mid)) {
+			if (compare(aux[lo], aux[mid]))
+				x[lo++] = mid; 
+				
 		}
 		
+		
+		
+		// Is this portion sorting the aux array? Check
 		for(int k = 1; k <= n; k++){
 			if(i > j-1)
 				x[k] = aux[j++];
-- 
GitLab