Implementation of 3 flavors of mergeSort