From 37f0eb1af2e36b9f47706668ba3a77f073c78b1b Mon Sep 17 00:00:00 2001 From: John Washam Date: Mon, 11 Jul 2016 21:27:13 -0700 Subject: [PATCH] Quotes about trees. Added video on cache-oblivious B trees. --- README.md | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index dc1d425..81d7650 100644 --- a/README.md +++ b/README.md @@ -442,6 +442,9 @@ Then test it out on a computer to make sure it's not buggy from syntax. - [ ] **Balanced search trees** - Know least one type of balanced binary tree (and know how it's implemented): + - "Among balanced search trees, AVL and 2/3 trees are now passé, and red-black trees seem to be more popular. + A particularly interesting self-organizing data structure is the splay tree, which uses rotations + to move any accessed key to the root." - Skiena - [x] **AVL trees** - In practice: @@ -493,6 +496,9 @@ Then test it out on a computer to make sure it's not buggy from syntax. - [x] Introduction to B-Trees: https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6 - [x] B-Tree Definition and Insertion: https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6 - [x] B-Tree Deletion: https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6 + - [x] MIT 6.851 - Memory Hierarchy Models: https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf + - covers cache-oblivious B-Trees, very interesting data structures + - the first 37 minutes are very technical, may be skipped (B is block size, cache line size) - [ ] **Red/black trees** - In practice: @@ -508,13 +514,7 @@ Then test it out on a computer to make sure it's not buggy from syntax. https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871 - [ ] Aduni - Algorithms - Lecture 5: https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5 - - [ ] **Skip lists** - - [ ] MIT: Randomization: Skip Lists: https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp - - - [ ] **Memory Model & Trees** - - [ ] MIT 6.851 - Memory Hierarchy Models: https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf - -- [ ] **N-ary trees** +- [ ] **N-ary (K-ary) trees** - [ ] https://en.wikipedia.org/wiki/K-ary_tree - [ ] **Tries** @@ -522,16 +522,6 @@ Then test it out on a computer to make sure it's not buggy from syntax. - [ ] https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries - [ ] https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie -- [ ] **Disjoint Sets:** - - [ ] https://en.wikipedia.org/wiki/Disjoint-set_data_structure - - [ ] UCB 61B - Disjoint Sets; Sorting & selection: https://www.youtube.com/watch?v=MAEGXTwmUsI&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=21 - - [ ] https://www.coursera.org/learn/data-structures/lecture/JssSY/overview - - [ ] https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations - - [ ] https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees - - [ ] https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank - - [ ] https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression - - [ ] https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional - ## Sorting This area is sparse, and I'll be filling it in once I get here. @@ -602,9 +592,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th This area is sparse, and I'll be filling it in once I get here. -- [ ] **Treap** - - [ ] ? - - [ ] Caches - LRU cache @@ -893,6 +880,23 @@ Some of mine (I already may know answer to but want their opinion or team perspe Everything below is my recommendation, not Google's, and you may not have enough time to learn, watch or read them all. That's ok. I may not either. +- [ ] **Skip lists** + - "These are somewhat of a cult data structure" - Skiena + - [ ] MIT: Randomization: Skip Lists: https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp + +- [ ] **Disjoint Sets:** + - [ ] https://en.wikipedia.org/wiki/Disjoint-set_data_structure + - [ ] UCB 61B - Disjoint Sets; Sorting & selection: https://www.youtube.com/watch?v=MAEGXTwmUsI&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=21 + - [ ] https://www.coursera.org/learn/data-structures/lecture/JssSY/overview + - [ ] https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations + - [ ] https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees + - [ ] https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank + - [ ] https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression + - [ ] https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional + +- [ ] **Treap** + - [ ] ? + - [x] **Parity & Hamming Code** - [x] Parity: - https://www.youtube.com/watch?v=DdMcAUlxh1M