Design and Analysis of Algorithms


Lecture 1 - Overview of the course


Lecture 2 - Framework for Algorithms Analysis


Lecture 3 - Algorithms Analysis Framework - II


Lecture 4 - Asymptotic Notations


Lecture 5 - Algorithm Design Techniques : Basics


Lecture 6 - Divide And Conquer - I


Lecture 7 - Divide And Conquer - II Median Finding


Lecture 8 - Divide And Conquer - III Surfing Lower Bounds


Lecture 9 - Divide And Conquer - IV Closest Pair


Lecture 10 - Greedy Algorithms - I


Lecture 11 - Greedy Algorithms - II


Lecture 12 - Greedy Algorithms - III


Lecture 13 - Greedy Algorithms - IV


Lecture 14 - Pattern Matching - I


Lecture 15 - Pattern Matching - II


Lecture 16 - Combinational Search and Optimization - I


Lecture 17 - Combinational Search and Optimization - II


Lecture 18 - Dynamic Programming


Lecture 19 - Longest Common Subsequences


Lecture 20 - Matrix Chain Multiplication


Lecture 21 - Scheduling with Startup and Holding Costs


Lecture 22 - Average case Analysis of Quicksort


Lecture 23 - Bipartite Maximum Matching


Lecture 24 - Lower Bounds for Sorting


Lecture 25 - Element Distinctness Lower Bounds


Lecture 26 - NP-Completeness - I - Motivation


Lecture 27 - NP-Completeness - II


Lecture 28 - NP-Completeness - III


Lecture 29 - NP-Completeness - IV


Lecture 30 - NP-Completeness - V


Lecture 31 - NP-Completeness - VI


Lecture 32 - Approximation Algorithms


Lecture 33 - Approximation Algorithms


Lecture 34 - Approximation Algorithms for NP