I was thinking that you can apply quick sort. It is almost same as merge sort, only difference is that you first split and then merge, where whit quicksort you first "merge" and then you make split. If you look little different is mergesort quicksort in opposite direction
mergesort:
split -> recursion -> merge
quicksort:
umnerge (opposite of merge) -> recursion -> join (opposite of split)