From f0761e7286b8d60aba3d1d4f65c5559faeb46e09 Mon Sep 17 00:00:00 2001 From: Michael Sambol Date: Fri, 9 Sep 2022 18:06:52 -0700 Subject: [PATCH] Add links to short review videos --- README.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d376fd..182336b 100644 --- a/README.md +++ b/README.md @@ -591,6 +591,7 @@ But don't forget to do coding problems from above while you learn! - [Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one) - [Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two) - [ ] [Cheat sheet](http://bigocheatsheet.com/) +- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU) Well, that's about enough of that. @@ -636,6 +637,7 @@ if you can identify the runtime complexity of different algorithms. It's a super - [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK) - [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0) - [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w) + - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c) - [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo) - not the whole video, just portions about Node struct and memory allocation - [ ] Linked List vs Arrays: @@ -667,11 +669,13 @@ if you can identify the runtime complexity of different algorithms. It's a super - ### Stack - [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ) + - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU) - [ ] Will not implement. Implementing with array is trivial - ### Queue - [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq) - [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer) + - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ) - [ ] Implement using linked-list, with tail pointer: - enqueue(value) - adds value at position at tail - dequeue() - returns value and removes least recently added element (front) @@ -697,6 +701,7 @@ if you can identify the runtime complexity of different algorithms. It's a super - [ ] [PyCon 2017: The Dictionary Even Mightier (video)](https://www.youtube.com/watch?v=66P5FMkWoVU) - [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11) - [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4) + - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8) - [ ] Online Courses: - [ ] [Core Hash Tables (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP) @@ -720,6 +725,7 @@ if you can identify the runtime complexity of different algorithms. It's a super - [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search) - [ ] [detail](https://www.topcoder.com/thrive/articles/Binary%20Search) - [ ] [blueprint](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems) + - [ ] [[Review] Binary search in 3 minutes (video)](https://youtu.be/B25Gu5r0xUg) - [ ] Implement: - binary search (on sorted array of integers) - binary search using recursion @@ -769,6 +775,9 @@ if you can identify the runtime complexity of different algorithms. It's a super - inorder (DFS: left, self, right) - postorder (DFS: left, right, self) - preorder (DFS: self, left, right) + - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE) + - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c) + - [ ] [[Review] Tree Traversal playlist by Michael Sambol (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b) - ### Binary search trees: BSTs - [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) @@ -813,6 +822,7 @@ if you can identify the runtime complexity of different algorithms. It's a super - [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) - [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE) - [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw) + - [ ] [[Review] Heap playlist by Michael Sambol (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6) - [ ] Implement a max-heap: - [ ] insert - [ ] sift_up - needed for insert @@ -877,6 +887,14 @@ if you can identify the runtime complexity of different algorithms. It's a super - [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c) - [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py) +- [ ] [[Review] Sorting playlist by Michael Sambol](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl) + - [ ] [[Review] Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M) + - [ ] [[Review] Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo) + - [ ] [[Review] Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc) + - [ ] [[Review] Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA) + - [ ] [[Review] Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g) + - [ ] [[Review] Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA) + - [ ] Implement: - [ ] Mergesort: O(n log n) average and worst case - [ ] Quicksort O(n log n) average case @@ -939,6 +957,8 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k) - [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) - [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw) + - [ ] [[Review] Shortest Path Algorithms playlist by Michael Sambol (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw) + - [ ] [[Review] Minimum Spanning Trees playlist by Michael Sambol (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV) - Full Coursera Course: - [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome) @@ -1198,7 +1218,7 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] Series of 2-3 minutes short subject videos (23 videos) - [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22) -- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (18 videos): +- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (36+ videos): - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ) - [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1) - [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2) @@ -1689,6 +1709,7 @@ You're never really done. - [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5) - [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree) - [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees) + - [[Review] Red-Black Trees playlist by Michael Sambol (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin) - **2-3 search trees** - In practice: @@ -1729,6 +1750,7 @@ You're never really done. - [MIT 6.851 - Memory Hierarchy Models (video)](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) + - [[Review] B-Trees playlist by Michael Sambol (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz) - ### k-D Trees