Mergesort
Remember, the mergesort is a recursive
sorting algorithm
that always gives the same performance
regardless of the initial order of the data.
For example, you might divide an array in half -
sort each half - then merge the sorted halves
into 1 data structure.
To merge, you compare 1 element in 1 half of
the list to an element in the other half, moving
the smaller item into the new data structure.