Lecture 0: Computer science (slides)
Lecture 1: Introduction, why data structure and algorithm? (slides)
Lecture 2: Models of computation, Growth of function, Big-O notation
Lecture 3: Divide-and-conquer
Lecture 4: Probabilistic analysis and randomized algorithm
Lecture 5: Insertion sort, Merge sort
Lecture 6: Quicksort
Lecture 7: Heap sort
Lecture 8: Linear time sort (radix sort)
Lecture 9: Stack and Queue
Lecture 10: Linked list
Lecture 11: Hashing
Lecture 12: Binary Search Trees (BST)
Lecture 13: Balanced BST
Lecture 14: Dynamic programming
Lecture 15: Greedy algorithms
Lecture 16: B-trees
Lecture 17: Disjoint sets
Lecture 18: Elementary graph algorithms
Lecture 19: Minimum spanning trees
Lecture 20: Single-source shortest paths
Lecture 21: All-pairs shortest paths