Merge sort is a divide and conquer algorithm that divides an array into halves, recursively sorts the halves, and then merges the sorted halves back together. The key steps are: 1. Divide the array into equal halves until reaching base cases of arrays with one element. 2. Recursively sort the left and right halves by repeating the divide step. 3. Merge the sorted halves back into a single sorted array by comparing elements pairwise and copying the smaller element into the output array. Merge sort has several advantages including running in O(n log n) time in all cases, accessing data sequentially with low random access needs, and being suitable for external sorting of large data sets that do not fit in memory