Merge sort is a divide-and-conquer sorting algorithm that works by recursively splitting an array into halves, sorting each half, and merging the sorted halves back together. It first divides the array into single elements, then recursively merges the sorted subarrays until the full array is sorted. The algorithm is efficient for large datasets due to its O(n log n) runtime and ability to be parallelized. Pseudocode shows it recursively divides the array until single elements, sorts each half, then merges the halves back together in sorted order. An example Python implementation demonstrates applying merge sort to sort an input array.