PCC-404: Design & Analysis of Algorithm Theory

Spring 2024


Announcements


Class Details

Books

Lecture Details

Topic Details Resources
Complexity basics comparison of different complexity classes
Proof techniques substitution, induction, recursion tree method
Recursion recurrence relations
Master method Usage and proof of master method Master Method Proof, Practice Problems
Divide and Conquer Technique Quicksort, Mergesort, Heapsort
Analysis of Sorting techniques Time and Space for Quicksort, Mergesort, heapsort
BFS and DFS BFS and DFS tree, Cycle finding, Analysis of both algorithms
Minimum Spanning Tree Prim's and Kruskal's and Analysis of both algorithms
Shortest paths in graph Floyed Warshall, Dijkstra, Bellman Ford
Dynamic Programming 1 Concepts - overlapping subproblems and optimal substructure properties
Dynamic Programming 2 0-1 Knapsack, Matrix Chain Multiplication
Greedy Fractional Knapsack, Job sequencing problem with deadlines
Divide and Conquer Matrix Multiplication (Basic and Strassen's)
Notion of NP Completeness classes of problems, decision problems and optimization problems, reference
NP Completeness - reductions SUBSET SUM, CLIQUE, VERTEX COVER, HAM-CYCLE, 0-1 KNAPSACK, TSP SAT, 3-CNF-SAT
Backtracking Subset sum, N-queen, Graph coloring
Branch and Bound 0-1 Knapsack, 15-puzzle, TSP
Network Flow Flow Basics, Max flow properties, Max-flow Min-cut Theorem, Bipartite matching
Approximation Algorithms Notions of approximation, Min-Vertex-Cover reference
Pattern Matching Basics, Rabin-Karp, Knuth-Morris-Pratt
Concepts of Amortization Algorithms Examples, methods for Amortization reference

Helpful Resourses