Sorting Algorithms, Part 1: Merge Sort