At the end of this lecture, you’ll be able to:
- Express the formal, mathematical definition of Big Oh.
- Use the mathematical definition of Big Oh to prove asymptotic running time of a given program.
- Express the mathematical definition of Big Omega.
- Use the mathematical definition of Big Omega to prove asymptotic running time of a given program.
- Recognize that big Oh and big Omega are not necessarily tight bounds.
- Recognize growth rate type (upper or lower bound) is different from worst case vs. best case analysis.
- Express the mathematical definition of Big Theta.
- Use the definition of Big Theta to show asymptotic running time of a given program.
- Enumerate various asymptotic notation used in this course.
- Explain what is meant by asymptotic complexity analysis of an algorithm.
- Contrast between time vs space complexity.
- Express the space requirements for a given code segment as a function of the input size in the worst case scenario.
- Elaborate on the benefits of using asymptotic notation and worst-case analysis to study computational complexity of algorithms.
In this lecture, we'll cover the following lessons:
- Big Oh: Formal Definition
- Big Oh: Mathematical Definition⚡
- Big Oh Definition: Exercise I⚡
- Big Oh Definition: Exercise II⚡
- Big Oh Definition: Asymptotic Upper Bounds
- Big Omega: Asymptotic Lower Bounds⚡
- Big Omega: Exercise I⚡
- Big Omega: Exercise II⚡
- Big Theta: Asymptotic Tight Bound⚡
- Big Theta: Another Definition!⚡
- Big Theta: Exercise⚡
- Asymptotic Notation: Summary
- Asymptotic Complexity: Time & Space⚡
- Asymptotic Complexity: Exercise I⚡
- Asymptotic Complexity: Exercise II⚡
- Asymptotic Complexity: Summary
Lessons marked with ⚡ contain exercise/activity.