# InfoCoBuild

## 6.046J Introduction to Algorithms (SMA 5503)

6.046J/18.410J Introduction to Algorithms (SMA 5503, MIT OCW). This consists of 25 video lectures given by Professor Charles Leiserson and Professor Erik Demaine, introducing the analysis and design of computer algorithms. 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. (from ocw.mit.edu)

 Introduction

 Lecture 01 - Administrivia; Introduction; Analysis of Algorithms, Insertion Sort, Mergesort Lecture 02 - Asymptotic Notation; Recurrences; Substitution, Master Method Lecture 03 - Divide-and-Conquer: Strassen, Fibonacci, Polynomial Multiplication Lecture 04 - Quicksort, Randomized Algorithms Lecture 05 - Linear-time Sorting: Lower Bounds, Counting Sort, Radix Sort Lecture 06 - Order Statistics, Median Lecture 07 - Hashing, Hash Functions Lecture 08 - Universal Hashing, Perfect Hashing Lecture 09 - Relation of BSTs to Quicksort - Analysis of Random BST Lecture 10 - Red-black Trees, Rotations, Insertions, Deletions Lecture 11 - Augmenting Data Structures, Dynamic Order Statistics, Interval Trees Lecture 12 - Skip Lists Lecture 13 - Amortized Algorithms, Table Doubling, Potential Method Lecture 14 - Competitive Analysis: Self-organizing Lists Lecture 15 - Dynamic Programming, Longest Common Subsequence Lecture 16 - Greedy Algorithms, Minimum Spanning Trees Lecture 17 - Shortest Paths I: Properties, Dijkstra's Algorithm, Breadth-first Search Lecture 18 - Shortest Paths II: Bellman-Ford, Linear Programming, Difference Constraints Lecture 19 - Shortest Paths III: All-pairs Shortest Paths, Matrix Multiplication, Floyd-Warshall, Johnson Lecture 20 Lecture 21 Lecture 22 - Advanced Topics Lecture 23 - Advanced Topics (cont.) Lecture 24 - Advanced Topics (cont.) Lecture 25 - Advanced Topics (cont.) - Discussion of Follow-on Classes

 References Introduction to Algorithms (SMA 5503) Instructors: Prof. Charles Leiserson and Prof. Erik Demaine. Selected Lecture Notes. Audio Lectures. Exams and Solutions. Subtitles/Transcript. Assignments and Solutions.