Merge Sort

Recursively splits the array and merges sorted halves.

Stable:YesIn-place:No
Complexity
Best
O(n log n)
Average
O(n log n)
Worst
O(n log n)
Space
O(n)
When to use: Good when you need stable sorting.StableUses extra memory (O(n))
Pseudocode
mergesort(low, high)
mergesort(low, mid)
mergesort(mid+1, high)
merge(low, mid, high)
if left[i] <= right[j]
a[k] = left[i] (else right[j])
merged range
done
Waiting to start…