This document presents an overview of the merge sort algorithm. It begins with an introduction explaining that merge sort is a divide and conquer algorithm that divides an input array in half, recursively sorts the halves, and then merges the sorted halves together. It then provides pseudocode for the merge sort algorithm, which works by recursively dividing the array in half until each subarray contains a single element, and then merging the sorted subarrays back together. Finally, it analyzes the time and space complexity of merge sort, concluding that it has time complexity of Θ(nlogn) and space complexity of Θ(n).