Advanced Data Structures
Video Lectures
Displaying all 22 video lectures.
Lecture 1![]() Play Video |
Persistent Data Structures "Persistence" - remembering all past versions of a data structure ("partial persistence"), being able to modify them - forking off new ones ("full persistence"), and merging different versions into one ("confluent persistence"). |
Lecture 2![]() Play Video |
Retroactive Data Structures Partial and full retroactivity let us to alter and manipulate the order of operations, and investigate the results. A third type, "non-oblivious", puts queries on the timeline as well, and reports the first query whose answer changed. |
Lecture 3![]() Play Video |
Geometric Structures I Point location and range searching: persistence, retroactivity, dynamization of augmentation through weight balance, and fractional cascading. |
Lecture 4![]() Play Video |
Geometric Structures II Fractional cascading in 3D orthogonal range searching in O(log n) time. Moving data, e.g., where 2D points move at known velocity and acceleration: kinetic predecessor and kinetic priority queues. |
Lecture 5![]() Play Video |
Dynamic Optimality I Dynamic optimality: binary search trees, analytic bounds, splay trees, geometric view, greedy algorithm |
Lecture 6![]() Play Video |
Dynamic Optimality II Dynamic optimality: independent rectangle, Wilber, and Signed Greedy lower bounds; key-independent optimality; O(lg lg n)-competitive Tango trees |
Lecture 7![]() Play Video |
Memory Hierarchy Models Cache-efficient structures. B-trees are good at data transferred in blocks between cache and main memory, main memory and disk, and so on, achieving O(logB N) insert/delete/predecessor/successor for N items and memory block transfers of size B. |
Lecture 8![]() Play Video |
Cache-Oblivious Structures I Memory hierarchy: ordered-file maintenance, list labeling, order queries, cache-oblivious priority queues |
Lecture 9![]() Play Video |
Cache-Oblivious Structures II Memory hierarchy: distribution sweeping via lazy funnelsort; cache-oblivious orthogonal 2D range searching: batched and online |
Lecture 10![]() Play Video |
Dictionaries Dictionaries: universal, k-wise independent, simple tabulation hashing; chaining, dynamic perfect hashing, linear probing, cuckoo hashing |
Lecture 11![]() Play Video |
Integer Models Integer: models, predecessor problem, van Emde Boas, x-fast and y-fast trees, indirection |
Lecture 12![]() Play Video |
Fusion Trees Fusion trees: sketching, parallel comparison, most significant set bit |
Lecture 13![]() Play Video |
Integer Lower Bounds Integer data structure lower bounds. In particular, we'll prove that the min of van Emde Boas and fusion trees is an optimal (static) predecessor data structure up to a log log factor, assuming polynomial space. |
Lecture 14![]() Play Video |
Sorting in Linear Time Integer: sorting in linear time for w = O(lg2+ëµ n), priority queues |
Lecture 15![]() Play Video |
Static Trees Static trees: least common ancestor, range minimum queries, level ancestor |
Lecture 16![]() Play Video |
Strings Strings: suffix tree, suffix array, linear-time construction for large alphabets, suffix tray, document retrieval |
Lecture 17![]() Play Video |
Succinct Structures I Succinct: rank, select, tries |
Lecture 18![]() Play Video |
Succinct Structures II Succinct: compact suffix arrays and trees |
Lecture 19![]() Play Video |
Dynamic Graphs I Dynamic graphs: link-cut trees, heavy-light decomposition |
Lecture 20![]() Play Video |
Dynamic Graphs II Dynamic graphs: Euler tour trees, decremental connectivity in trees in O(1), fully dynamic connectivity in O(lg2 n), survey |
Lecture 21![]() Play Video |
Dynamic Connectivity Lower Bound Dynamic graphs: ë©(lg n) lower bound for dynamic connectivity |
Lecture 22![]() Play Video |
History of Memory Models History of memory models: idealized 2-level, red-blue pebble game, external memory, HMM, BT, (U)MH, cache oblivious |