diff --git a/src/sort/mergeSort.java b/src/sort/mergeSort.java index 04c35736b86cb62e13b4e7323f6f156d81d2514d..eef5d62a36e1109f2ad7f0821327607296a8cb34 100644 --- a/src/sort/mergeSort.java +++ b/src/sort/mergeSort.java @@ -10,23 +10,23 @@ public class mergeSort implements GeneralCompare{ if(n <= 1) return; - int mid = n/2; - merge(gc, mid); - merge(gc, mid+1); + int j = (n/2) + 1, i = 0; + merge(gc, j); + merge(gc, j+1); - for(int i = 1; i <= n; i++){ + for(int k = 1; k <= n; k++){ aux[i] = gc[i]; } - for(int i = 1; i <= n; i++){ - if(i > mid) //Should these not be a[i] and a[mid]? - gc[i] = aux[mid++]; - else if(mid+1 > n) //^ - gc[i] = aux[2]; - else if(compare(aux[mid+1],aux[1]) < 0)// ? - gc[i] = aux[i]; //fill statement (incorrect) + for(int k = 1; k <= n; k++){ + if(i > j-1) //Should these not be a[i] and a[mid]? + gc[k] = aux[j++]; + else if(j > n) //^ + gc[k] = aux[2]; + else if(compare(aux[j+1],aux[1]) < 0)// ? + gc[k] = aux[j++]; //fill statement (incorrect) else - gc[i] = aux[2]; + gc[k] = aux[i++]; } }