# Introduction to Algorithms

Massachusetts Institute of 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; 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.

• ##### Analysis of Algorithms
Charles E. Leiserson

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Asymptotic Notation and Recurrences
Erik Demaine

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Divide and Conquer
Erik Demaine

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Quicksort
Charles E. Leiserson

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Sorting Lower Bounds and Linear-Time Sorting
Erik Demaine

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Order Statistics
Erik Demaine

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Hashing I
Charles E. Leiserson

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Hashing II
Charles E. Leiserson

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Randomly Built Binary Search Trees
Erik Demaine

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Balanced Search Trees
Erik Demaine

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Skip Lists
Erik Demaine

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Competitive Analysis
Charles E. Leiserson

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Dynamic Programming
Charles E. Leiserson

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Greedy Algorithms (and Graphs)
Charles E. Leiserson

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Shortest Paths I
Erik Demaine

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Shortest Paths II
Erik Demaine

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

• ##### Shortest Paths III
Charles E. Leiserson

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.

Charles E. Leiserson

The second half of calculus looks for the distance traveled even when the speed is changing. Finding this integral is the opposite of finding the derivative. Professor Strang explains how the integral adds up little pieces to recover the total distance.