Introduction to Algorithms (2005) MIT

 Technology
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; divideandconquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; numbertheoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.

 video
Lecture 01: Administrivia/Introduction/Analysis of Algorithms, Insertion Sort, Mergesort

 video
Lecture 02: Asymptotic Notation/Recurrences/Substitution, Master Method

 video
Lecture 03: DivideandConquer: Strassen, Fibonacci, Polynomial Multiplication


 video
Lecture 05: Lineartime Sorting: Lower Bounds, Counting Sort, Radix Sort
