A great explaination of how both sorting algorithms work through comments.
For merge sort, I noticed there being multiple ways to write that algorithm. In approach #1, sorting and splitting is done entirely in one function. In approach #2, the same tasks are done in 3 different functions.