Learning Outcomes
At the end of this lecture, you’ll be able to:
- Explain and trace the operations of QuickSort on a particular data sequence.
- Implement QuickSort efficiently.
- Analyze the best- and worst-case space and time efficiency of partitioning phase and QuickSort overall.
- Recognize that the average-case time efficiency for QuickSort is the same as the best case.
- Compare the advantages and disadvantages of various pivot choices when implementing the general QuickSort algorithm.
- Trace the operations of QuickSort on a particular data sequence using the median of three pivot choice.
- Explain what is meant by stable sorting and determine which sorting algorithms (that we learned so far) are stable.
Lecture Plan
In this lecture, we'll cover the following lessons:
- Linearithmic Sorts
- Quicksort: The Big Picture!
- Partition: Tracing⚡
- Partition: Implementation⚡
- Quicksort: Recursive Implementation⚡
- Quicksort: Analysis⚡
- Quicksort: Selecting the Pivot⚡
- Java Interlude: Built-in Sorts⚡
- Stable Sorting⚡
- Dace your sort away!
Lessons marked with ⚡ contain exercise/activity.