Licence:
Course Description:
This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.
Lectures:
Lecture 1 - Analysis of Algorithms
Lecture 2 - Asymptotic Notation and Recurrences
Lecture 3 - Divide and Conquer
Lecture 4 - Quicksort
Lecture 5 - Sorting Lower Bounds and Linear-Time Sorting
Lecture 6 - Order Statistics
Lecture 7 - Hashing I
Lecture 8 - Hashing II
Lecture 9 - Randomly Built Binary Search Trees
Lecture 10 - Balanced Search Trees
Lecture 11 - Augmenting Data Structures
Lecture 12 - Skip Lists
Lecture 13 - Amortized Analysis
Lecture 14 - Competitive Analysis
Lecture 15 - Dynamic Programming
Lecture 16 - Greedy Algorithms (and Graphs)
Lecture 17 - Shortest Paths I
Lecture 18 - Shortest Paths II
Lecture 19 - Shortest Paths III
Lecture 20 - Advanced Topics
Lecture 21 - Advanced Topics (cont.)
Lecture 22 - Advanced Topics (cont.)
Lecture 23 - Advanced Topics (cont.)
Source: http://academicearth.org/courses/introduction-to-algorithms