The document discusses the merge sort algorithm. It has three main steps:
1) Divide the array into halves recursively until single elements remain.
2) Sort the single element arrays trivially.
3) Merge the sorted arrays back together using a merge procedure that compares elements and inserts them in the correct order into the output array.
Merge sort has a time complexity of O(n log n) and space complexity of O(n). It is a stable, divide and conquer, recursive sorting algorithm but not an in-place algorithm.