This document provides an overview of the merge sort algorithm. It defines merge sort as a divide and conquer algorithm that divides an input array into halves, recursively sorts the halves, and then merges the sorted halves together. The key steps are dividing, conquering sub-problems recursively, and combining solutions. Merge sort runs in O(n log n) time in the average and worst cases but requires O(n) additional space for a temporary array. Examples and applications are provided.