Merge Sort Implementation and Optimization
pop(0) has a linear time complexity, which makes the entire time complexity quadratic.

The single most important advantage of merge sort is stability: the elements compare equal retain their original order. In your code, if two elements are equal the one from the right is merged first, and stability is lost.