Merge Sort

Merge Sort is a Divide-and-Conquer sorting algorithm, which sorts a list recursively by dividing it into halves until a single --element or empty list is created; it then merges these sublists of create a software list.

Merge Sort is one of the faster and most stable sorting algorithms, with an O(nlogn)O(n \log n) time complexity in the average and worst case.