Merge sort is a sorting algorithm that uses a divide and conquer technique. It divides an array into halves, recursively sorts each half, and then merges the sorted halves into a single sorted array. John Von Neumann developed merge sort in 1945 for the EDVAC computer. Merge sort has a time complexity of O(n log n), making it one of the most efficient sorting algorithms.