Lecture 1 - What is an Algorithm ?
Lecture 2 - Efficient Algorithms
Lecture 3 - Sorting, Searching and Arrays
Lecture 4 - Clever Algorithms
Lecture 5 - Asymptotics, Fast Max-Sum Subarray
Lecture 6 - Local Minima in 1D
Lecture 7 - Local Minima in 2D
Lecture 8 - Efficient Local Minima in 2D
Lecture 9 - Recurrence and Efficient Data Structures
Lecture 10 - Range Minima in 1D array
Lecture 11 - Abstract Data Structures: Lists
Lecture 12 - Linked Lists
Lecture 13 - Binary Search Inspired Tree
Lecture 14 - BST : Search, Insertion
Lecture 15 - Balancing a BST, Stack Data Structure
Lecture 16 - Stack: Expression Evaluation
Lecture 17 - Queue DS
Lecture 18 - Red Black Tree DS
Lecture 19 - RB Tree: Balance
Lecture 20 - Divide and Conquer Paradigm
Lecture 21 - Integer Multiplication and Inversions
Lecture 22 - Graph Theory and Algorithms
Lecture 23 - Graph DS and Breadth First Search
Lecture 24 - Complexity and Applications of BFS
Lecture 25 - Check Bipartiteness using BFS, Depth First Search
Lecture 26 - DFS tree and biconnected graph
Lecture 27 - Articulation Points, Heap Data Structure
Lecture 28 - Binary Heap
Lecture 29 - Heapification
Lecture 30 - Augmented tree Data Structure
Lecture 31 - Multi Increment and Dynamic Range Min Problems
Lecture 32 - Disjoint-Set Data Structure
Lecture 33 - Fast Union and the i-th Statistic Problem
Lecture 34 - i-th Statistic Problem: Approx Median
Lecture 35 - Greedy Algorithms: Job Scheduling
Lecture 36 - Minimum Spanning Tree
Lecture 37 - MST Cycle, Mobile Towers
Lecture 38 - Shortest Path Algorithm
Lecture 39 - Djikstra's Algorithm
Lecture 40 - Counting Sort, Radix Sort