Here is a general trace of what would happen in your case. Each * should be considered one extra level of recursion:


int[] list = {42, 17, 33, 55};

mergeSort(array0 = list)
left0 = {42,17}...