diff --git a/PR Gitty Qualifier/src/SortAlgo.java b/PR Gitty Qualifier/src/SortAlgo.java index b5a8752..74efc20 100644 --- a/PR Gitty Qualifier/src/SortAlgo.java +++ b/PR Gitty Qualifier/src/SortAlgo.java @@ -1,4 +1,5 @@ import java.util.logging.Logger; +import java.util.ArrayList; import java.util.logging.Level; public class SortAlgo { @@ -29,11 +30,6 @@ public class SortAlgo { System.out.println(); - int[] erg4 = mergesort(insert); - for (int i = 0; i < erg4.length;i++) - System.out.print(erg4[i] + " "); - - System.out.println(); } @@ -92,9 +88,59 @@ public class SortAlgo { return arr; } - public static int[] mergesort (int[] arr) { // O(n*log2(n)) - - return arr; + public class Mergesort { + private static final Logger log = Logger.getLogger(Mergesort.class.getName()); + private int forcounts = 0; + public int[] sort(int[] arr) { + if(arr.length == 0) { + return new int[0]; + } + int[] sorted = new int[arr.length]; + ArrayList subArrays = new ArrayList(); + for(int i = 0; i < arr.length; i++) { + subArrays.add(new Integer[] {arr[i]}); + } + while(subArrays.size() > 1) { + ArrayList newSubArrays = new ArrayList(); + for(int i = 0; i= arr1.length) { + ret[i] = arr2[index2++]; + } else if(index2 >= arr2.length) { + ret[i] = arr1[index1++]; + } else if(arr1[index1] <= arr2[index2]) { + ret[i] = arr1[index1++]; + } else { + ret[i] = arr2[index2++]; + } + } + return ret; + } }