Merge Sort
Merge Sort uses divide and conquer. It recursively splits the array into halves, sorts each half, and merges the two sorted halves. The recurrence T(n)=2T(n/2)+O(n) gives O(n log n) time. Standard array implementations require O(n) auxiliary space.
Best case: O(n log n).
Average case: O(n log n).
Worst case: O(n log n).
Typical auxiliary space for arrays: O(n).
Stable when the merge operation preserves equal-element order.