| | | | | |

Top Down Merge Sort

Sort range [b,e) recursively

  1. Find midpoint m of range
  2. Sort [b,m) with recursive call
  3. Sort [m,e) with recursive call
  4. 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] 

| | Top of Page | 8. Sorting Algorithms - 7 of 16