The repository for MOOC "Data Structures and Algorithms Specialization", written in Python.
Course 1: Algorithmic Toolbox
Week 1: Programming Challenges
Week 2: Algorithmic Warm-up
Week 3: Greedy Algorithms
Week 4: Divide-and-Conquer
Week 5: Dynamic Programming 1
Week 6: Dynamic Programming 2
Course 2: Data Structures
Week 1: Basic Data Structures
Week 2: Dynamic Arrays and Amortized Analysis
Week 3: Priority Queues and Disjoint Sets
Week 4: Hash Tables
Week 5: Binary Search Trees
Week 6: Binary Search Trees 2
Course 3: Algorithms on Graphs
Week 1: Decomposition of Graphs 1
Week 2: Decomposition of Graphs 2
Week 3: Paths in Graphs 1
Week 4: Paths in Graphs 2
Week 5: Minimum Spanning Trees
Course 4: Algorithms on Strings
Week 1: Suffix Trees
Week 2: Burrows-Wheeler Transform and Suffix Arrays
Week 3: Knuth–Morris–Pratt Algorithm
Week 4: Constructing Suffix Arrays and Suffix Trees
Course 5: Advanced Algorithms and Complexity
Week 1: Flows in Networks
Week 2: Linear Programming
Week 3: NP-complete Problems
Week 4: Coping with NP-completeness