Mergesort
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.