Data Structures, Algorithms
Complexity Analysis & Big-O Notation
85 lessons in Data Structures, Algorithms
- Reductions and Lower Bounds DirectionQuiz
- The Hash-Set Trade-off That Wasn'tCode Quiz
- Complexity Trade-offs & Problem ReductionSlides / Video
- Complexity Trade-offs & Problem ReductionFlashcard
- Duplicate Check with a SetCode Quiz
- Two-Sum Time/Space Trade-off AnalysisQuiz
- Big-O Trade-offs in Real CodeSlides / Video
- Trading Space for Time with MemoizationFlashcard
- Hidden Quadratic Complexity BugCode Quiz
- Amortized Complexity of Dynamic Array AppendQuiz
- Understanding Big-O NotationQuiz
- Claimed O(n) Sum of UniquesCode Quiz
- Broken Memoization in FibonacciCode Quiz
- Big-O Time/Space Trade-offsQuiz
- Big-O Time & Space Trade-offsSlides / Video
- Time/Space Trade-offs in Big-O AnalysisFlashcard
- Finding Duplicates and Big-OCode Quiz
- Nested Loop Time & Space ComplexityQuiz
- Off-by-One in Duplicate CheckCode Quiz
- Big-O of a Simple LoopQuiz
- Big-O Notation BasicsSlides / Video
- Big-O Notation BasicsFlashcard
- Big-O for Time and SpaceSlides / Video
- Big-O Time & Space BasicsFlashcard
- Big-Omega NotationFlashcard
- Linearithmic Time O(n log n)Flashcard
- Dropping Lower-Order TermsQuiz
- Dropping ConstantsQuiz
- Constant Time O(1)Quiz
- Linear Time O(n)Quiz
- Logarithmic Time O(log n)Quiz
- Quadratic Time O(n^2)Quiz
- Linearithmic Time O(n log n)Quiz
- Counting Basic OperationsQuiz
- Ordering Complexity ClassesQuiz
- Exponential Time O(2^n)Quiz
- How Runtime ScalesQuiz
- Input Size Drives ComplexityQuiz
- Complexity of Nested LoopsQuiz
- Complexity of a Single LoopQuiz
- Sequential Code BlocksQuiz
- What Complexity Analysis Is and Why It MattersSlides / Video
- Using Complexity to Compare AlgorithmsSlides / Video
- Best, Average, and Worst CaseSlides / Video
- Space Complexity BasicsSlides / Video
- Analyzing Nested Loops for Time ComplexitySlides / Video
- Analyzing Simple Loops for Time ComplexitySlides / Video
- Dropping Constants and Lower-Order TermsSlides / Video
- Ranking Common Complexity ClassesSlides / Video
- Nested Loops Quadratic TimeCode Quiz
- Two Input VariablesCode Quiz
- Space Complexity Of CopyCode Quiz
- Worst Case Of Linear SearchCode Quiz
- Loop With Doubling StepCode Quiz
- Dropping Constants In Big-OCode Quiz
- Sort Then Loop ComplexityCode Quiz
- Halving Loop Logarithmic TimeCode Quiz
- Summing Sequential LoopsCode Quiz
- Single Loop Linear TimeCode Quiz
- Constant Time Array AccessCode Quiz
- Ordering Growth RatesCode Quiz
- Common Big-O Complexity ClassesSlides / Video
- Big-O as an Upper BoundSlides / Video
- Definition and Intuition of Big-O NotationSlides / Video
- Counting OperationsFlashcard
- Linear Time O(n)Flashcard
- Big-O Formal Notation and MeaningFlashcard
- Why We Focus on Worst CaseFlashcard
- Big-Theta NotationFlashcard
- Sequential Statements (Addition)Flashcard
- Comparing Growth RatesFlashcard
- Dropping Constants in Big-OFlashcard
- Complexity of Single LoopsFlashcard
- Exponential Time O(2^n)Flashcard
- Constant Time O(1)Flashcard
- Logarithmic Time O(log n)Flashcard
- Quadratic Time O(n^2)Flashcard
- Dropping Lower-Order TermsFlashcard
- Complexity of Nested LoopsFlashcard
- Auxiliary Space vs Total SpaceFlashcard
- Factorial Time O(n!)Flashcard
- Best, Average, and Worst CaseFlashcard
- How Runtime Grows as Input GrowsSlides / Video
- Input Size n: The Basis of AnalysisSlides / Video
- Counting Operations to Estimate CostSlides / Video