This is an archived course. A more recent version may be available at ocw.mit.edu.

 

Lecture Notes

Scribe notes for selected lectures are available below. These notes are courtesy of anonymous MIT students unless otherwise noted, and are used with permission.

Handwritten notes by Prof. Demaine and Dr. Schulz are available on the 6.851 class site.

LEC # TOPICS LECTURE NOTES
1 Dynamic optimality: binary search trees, analytic bounds, splay trees, geometric view, greedy algorithm (PDF)
2 Dynamic optimality: independent rectangle, Wilber, and Signed Greedy lower bounds; key-independent optimality; O(lg lg n)-competitive Tango trees (PDF)
3 Geometric data structures: orthogonal range queries, range trees, fractional cascading (PDF)
4 Geometric data structures: stabbing queries, interval trees, segment trees, priority search trees, windowing

(PDF)

(PDF)

5 Geometric data structures: kinetic data structures and ray shooting (1) (PDF)
6 Geometric data structures: ray shooting (2), partition trees (PDF)
7 Strings: suffix tree, suffix array, document retrieval (PDF) (Courtesy of Mark Chen. Used with permission.)
8 Strings: level ancestor, static LCA (part 1) (PDF)
9

Strings: static LCA (part 2)

Integers: van Emde Boas, y-fast trees

(PDF)
10 Integers: fusion trees (PDF)
11 Integers: predecessor lower bound via round elimination (PDF)
12 Integers: sorting in linear time for w = O(lg2+ε n), priority queues (PDF)
13 Integers: tree decompositions, marked ancestor upper bound, decremental connectivity in trees (PDF)
14 Dictionaries: FKS and cuckoo hashing (PDF)
15 Dictionaries: deterministic dictionaries  
16 Dynamic graphs: dynamic trees (link-cut trees) (PDF)
17 Dynamic graphs: overview, Euler tour trees, dynamic connectivity in O(lg2n) (PDF)
18 Dynamic graphs: Ω(lg n) lower bound for dynamic connectivity (PDF)
19 Temporal data structures: persistence, retroactivity (PDF)
20 External memory / cache-oblivious: models, B-trees (PDF)
21 External memory / cache-oblivious: ordered-file maintenance, list labeling, order queries, priority queues (PDF)
22 Succinct data structures: rank, select, tries (PDF)
23 Succinct data structures: compact suffix arrays and trees (PDF)