Learning Outcomes
At the end of this lecture, you’ll be able to:
- Define what is means by comparison-based algorithms.
- 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.
Lecture Plan
In this lecture, we'll cover the following lessons:
- Lower Bounds: Optimal Solution to Searching/Sorting
- Lower Bounds: Comparison-based Algorithms
- Comparison-based Algorithm: Decision Tree
- Binary Decision Tree⚡
- Binary Decision Tree: Analysis
- Binary Decision Tree: Linearithmic sorts are optimal!
- Linear Sorts: Beating the lower bound
- Counting Sort: Integer sorting
- More Linear Sorts⚡
Lessons marked with ⚡ contain exercise/activity.