Princeton University
Computer Science Department

Computer Science 423
Theory of Algorithms

Robert Tarjan

Spring 2011


COURSE INFORMATION | LECTURES | ASSIGNMENTS


The following schedule is tentative and may change throughout the semester.

DATE LECTURE READING
1/31 Counting in Binary
Amortized and Worst-Case Efficiency

Review CLRS Sections 1 & 2

Chapter 17, CLRS

Lecture Slides

2/2 Competitiveness
Self-adjusting lists

Review CLRS Chapter 10

Lecture Slides

Class Notes

2/7 Binary Search Trees
CLRS Chapter 12

Lecture Slides

2/9 Balanced Binary Search Trees
CLRS Chapter 13

Lecture Slides

2/14 Self-Adjusting Search Trees
Lecture Slides

(Top-Down) Splay Tree Demo

2/16 Implicit Heaps
Pairing Heaps

CLRS Chapter 6

Lecture Slides

2/21 Rank-Pairing Heaps
CLRS Chapter 19

Lecture Slides

2/23 Shortest Paths
CLRS Chapter 24

Lecture Slides

2/28 Shortest Paths II
CLRS Chapter 25

Lecture Slides

3/2 Minimum Spanning Trees
CLRS Chapter 23

Lecture Slides

3/7 Minimum Spanning Trees Faster
Lecture Slides

3/9 Disjoint Sets and Compressed Trees
CLRS Chapter 21

Lecture Slides

3/21 Analysis of Path Compression
Lecture Slides

3/23 Graph Search
CLRS Chapter 22

Lecture Slides

3/28 Strong Components and Blocks
Lecture Slides

3/30 Dominators in Directed Graphs
Lecture Slides

4/4 P, NP, and NP-Completeness
CLRS Chapter 34

Lecture Slides

4/6 Coping with NP-completeness
CLRS Chapter 35

Lecture Slides

4/11 Graph Matching
Lecture Slides

4/13 Nonbipartite Matching
Lecture Slides

4/18 Maximum Flow
CLRS Chapter 26

Lecture Slides

4/20 Minimum Cost Matchings and Flows
Lecture Slides

4/25 Odds and Ends
4/27 Odds and Ends II