The merge sort is a classic sorting algorithm. It is a stable, n-logn algorithm.
It is a divide and conquer algorithm that works by splitting a list apart into components that are of size zero or one, and then combining them back together in the correct order.