Algorithm Design and Analysis

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