The merge sort algorithm is a stable sorting technique with an average time complexity of O(n log n) and space complexity of O(n). It uses divide-and-conquer approach to sort an array of size 'n'. The algorithm recursively divides the array into two halves, sorts them using the same approach, and then merges the sorted sub-arrays. This process continues until the array is fully sorted. Additionally, there are cache-aware versions of merge sort that optimize performance by minimizing page movements in memory caches.