Lower Bounds & Linear-time Sorts

After reading this chapter and engaging in the embedded activities and reflections, you should be able to:

  • Define what is meant by comparison-based algorithms.
  • Relate the process of any comparison-based algorithm to a decision tree.
  • Understand and explain what lower bounds are for.
  • Justify $\Omega(\lg n)$ is the lower bound for comparison-based searching algorithms.
  • Justify $\Omega(n \lg n)$ is the lower bound for comparison-based sorting algorithms.
  • Identify which comparison-based searching/sorting algorithms are optimal.
  • Understand and explain how we can beat $\Omega(n \lg n)$ lower bound in linear-time sorting algorithms.
  • Explain and trace Counting sort, Bucket sort, and Radix sort, on a given sequence of data.
  • Justify the time and space complexity of these algorithms in the worst case, based on the data size and data range.

This chapter does not have a starter/solution code.