package com;
public class MergeSort {
public static int inversionCounts = 0;
private static Integer[] unsortedArray;
public static Integer[] getUnsortedArray() {
return unsortedArray;
}
public static void setUnsortedArray(Integer[] unsortedArray) {
MergeSort.unsortedArray = unsortedArray;
}
public static Integer[] mergeSort(int from, int end)
{
// zero case
if (unsortedArray.length == 0)
return null;
// Base case
if (end == from)
return new Integer[] { unsortedArray[end] };
//split array into half and half
int middle = (from + end) / 2;
Integer[] halfArray = mergeSort(from, middle);
Integer[] anotherHalfArray = mergeSort(middle + 1, end);