Top Down Merge Sort
Sort range [b,e) recursively
- Find midpoint m of range
- Sort [b,m) with recursive call
- Sort [m,e) with recursive call
- Merge ranges [b,m) and [m,e) to [b,e)
- Stable
- Runtime = Θ(n log n)
- Runspace = +Θ(n)
- No way around #3 for arrays, vectors, deques
|
[0,10) = [20 10 40 50 20 90 10 80 70] // 5 = 10/2
[0,5) = [20 10 40 50 20] -> [10 20 20 40 50]
[5,10) = [90 10 80 70] -> [10 70 80 90]
[0,10) = [10 10 20 20 40 50 70 80 90]
|