Simon’s suggestion for the Coding Train on GitHub:
Because I like computer science these days, here are some computer science algorithm suggestions:
- Data Structures
- Array
- Linked List
- Hash Table
- Stack
- Queue
- Priority Queue (Binary heap)
- Suffix Array
- Graph Theory
- Graph (general)
- Tree
- Binary Tree
- Full vs. Complete
- BST
- Binary Heap
- AVL Tree
- Red-Black Tree
- Segment Tree
- DFA
- Biparite
- UFDS
- Fenwick Tree
- Min Spanning Tree
- Suffix Tree
- Computational Geometry
- Polygon, etc.
- Algorithms
- Shuffling
- Fisher-Yates Algorithm
- Sorting
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quicksort
- Counting Sort
- Radix Sort
- More?
- Even More? (Scroll down to see a GIANT table)
- Traversal / Pathfinding / SSSP
- Basic
- Pre-order
- In-order
- Post-order
- Depth-first
- Breadth-first
- More?
- Shortest Pathfinding
- Dijkstra’s Shortest Path
- A*
- More?
- Even More?
- Basic
- Substring Finding
- Brute-force
- DFA
- KMP
- More?
- Min Spanning Tree
- Brute-force
- Kruskal’s Algorithm
- Prim’s Algorithm(s)
- Max-flow
- Graph Matching
- Cycle Finding
- Convex Hull
- Gift Wrapping
- Graham Scan
- Quickhull
- “The Ultimate Planar Convex Hull Algorithm”
- More?
- Min Vertex Cover
- Brute-force
- MVC
- Approximation
- Traveling Salesman
- Brute-force
- Dynamic Programming
- Approximation
- Steiner Tree
- Shuffling
If you’re brave, Do you want more even after all of this?
One last note: you’re not going to do all of them (probably!).