mergeSort implement