Data Structures and Algorithms - Coursera
- Welcome
- Introduction
- Greedy Algorithms
- Divide-and-Conquer
- Dynamic Programming
- Basic Data Structures
- Dynamic Arrays and Amortized Analysis external video
- Priority Queues and Disjoint Sets min-heap visualization - tutorial
- Hash Tables pdf
- Binary Search Trees Notes - visualization
- Binary Search Trees 2 Notes - visualization
- Decomposition of Graphs 1 Section on graph representation - Depth-first search
- Decomposition of Graphs 2 DFS - Indegree - Connected Components
- Paths in Graphs 1 Breadth-first search
- Paths in Graphs 2 Dijkstra'a algorithm
- Minimum Spanning Trees Kruskal's algorithm
- Advanced Shortest Paths Project (Optional) visualizations - A* search algorithm
- Suffix Trees
- Burrows-Wheeler Transform and Suffix Arrays
- KnuthβMorrisβPratt Algorithm Knuth-Morris-Pratt algorithm
- Constructing Suffix Arrays and Suffix Trees
- Flows in Networks
- Linear Programming
- NP-complete Problems The international SAT Competitions
- Coping with NP-completeness
- Streaming Algorithms (Optional)