Math
Graphs
- Breadth First Search
- Depth First Search
- Topological Sort (DFS)
- Topological Sort (Kahn)
- Cycles
- Eulerian Paths and Tours
- Kosaraju's Strongly Connected Components
- Ford-Fulkerson's Maximum Flow
- Dijkstra'a Shortest Paths (Greedy)
- Bellman-Ford's Shortest Paths (Dynamic Programming)
- Floyd Warshall's Shortest Paths (Dynamic Programming)
- Prim's Minimum Spanning Tree (Greedy)
- Kruskal's Minimum Spanning Tree (Greedy)
Shortest Paths
Minimum Spanning Trees
Trees
Computational Geometry
- The Art Gallery Problem
- Closest Pair of Points (Divide and Conquer)
- Orientation of Three Points
- Line Segment Intersection (Existence)(CLRS)
- Any Pair of Segments Intersection (Sweep Line)
- Triangulation (Theory)
- Triangulation (Finding a Diagnoal)
- Jarvis's March (Gift Wrapping)
- Graham's Scan
Segment Intersection
Triangulation
Convex Hull
Data Structures
Divide and Conquer
Dynamic Programming
Greedy
Randomized Algorithms
- Quicksort
- Quickselect (k-select)
- Minimum Cut (Karger and Karger-Stein)
- Average-Case, Expected-Case and Worst-Case Running Time
Complexity Analysis
Probability
- Counting Distinguishable and Indistinguishable Objects
- Random Variables
- Discrete Random Variables
- Conditional Probability
Graphics
- Working with Light
- The Virtual World (Pinhole Camera)
- The Virtual World (Model Transformations)
- The Virtual World (Viewing)
-
Barycentric Coordinates
- Triangles
- Ray Tracing
- Recursive Ray Tracing
- Bresenham Line-Drawing Algorithm
Competitive Programming
- Input Handling Examples
- Algorithms / Data Structures Examples
- Permutations
- Combinations
- Traversing Diagonals of a Grid