Mergesort
Even though this seems like a lot, you will
see that this is actually faster than either the
selection sort or the insertion sort.
Although the mergesort is extremely
efficient with respect to time, it does require
that an equal "temporary" array be used
which is the same size as the original array.
If temporary arrays are not used...this approach
ends up being no better than any of the others