Useful Links
Computer Science
Algorithms and Data Structures
Algorithm Design and Analysis
1. Introduction to Algorithms
2. Algorithm Analysis
3. Brute-Force and Exhaustive Search
4. Divide and Conquer
5. Greedy Algorithms
6. Dynamic Programming
7. Backtracking and Branch-and-Bound
8. Graph Algorithms
9. String Matching Algorithms
10. Computational Complexity Theory
11. Advanced Topics in Algorithm Design
Algorithm Analysis
Measuring Algorithm Performance
Time Complexity
Counting Primitive Operations
Input Size and Growth Rate
Machine-Independent Analysis
Space Complexity
Auxiliary Space
Input Space
Total Space Usage
Best-Case Analysis
Average-Case Analysis
Worst-Case Analysis
Practical Implications of Different Cases
Asymptotic Notation
Big O Notation
Formal Definition
Intuitive Understanding
Common Big O Classes
Examples and Applications
Big Omega Notation
Formal Definition
Lower Bound Analysis
Big Theta Notation
Formal Definition
Tight Bound Analysis
Little o Notation
Little omega Notation
Mathematical Properties
Transitivity
Reflexivity
Symmetry
Transpose Symmetry
Comparing Growth Rates
Common Mistakes in Asymptotic Analysis
Analysis of Iterative Algorithms
Loop Analysis Techniques
Summation Techniques
Arithmetic Series
Geometric Series
Harmonic Series
Telescoping Series
Loop Invariants
Definition and Purpose
Proving Correctness with Invariants
Initialization
Maintenance
Termination
Analysis of Recursive Algorithms
Recurrence Relations
Setting Up Recurrences
Linear Recurrences
Nonlinear Recurrences
Homogeneous Recurrences
Non-homogeneous Recurrences
The Substitution Method
Guessing Solutions
Verifying Solutions
Making Good Guesses
The Recursion-Tree Method
Visualizing Recurrences
Calculating Work at Each Level
Summing Across All Levels
The Master Theorem
Statement and Cases
Case 1 Analysis
Case 2 Analysis
Case 3 Analysis
Application Examples
Limitations of Master Theorem
Advanced Recurrence Solving
Akra-Bazzi Theorem
Generating Functions
Amortized Analysis
Motivation and Use Cases
The Aggregate Method
Summing Costs Over Sequences
Average Cost Calculation
The Accounting Method
Assigning Credits and Debits
Maintaining Non-negative Credit
The Potential Method
Defining Potential Functions
Amortized Cost Calculation
Analyzing Dynamic Data Structures
Previous
1. Introduction to Algorithms
Go to top
Next
3. Brute-Force and Exhaustive Search