Mergesort Performance
Best case: O(nlogn) comparisons
- split array into equal-sized partitions
- same happens at every recursive level
- each "level" requires ≤ n comparisons, n moves
- halving at each level ⇒ log2n levels
Worst case: O(nlogn) comparisons
- partitions are exactly interleaved
- need to compare all the way to end of partitions
Disadvantage over quicksort: need extra storage O(n)
Advantage over quicksort: best ≅ worst ≅ avg = O(nlogn)
|