Quicksort

After reading this chapter and engaging in the embedded activities and reflections, you should 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.

Starter code for this chapter.

Solution code

Solution code for this chapter.