# Advanced Data Structures and Algorithms

July 04, 2018

This is an advanced course on data structures and algorithms.

If you want to data structures and algorithms from the ground-up, follows this course instead: Learn Data Structures and Algorithms.

The tutorials have been edited and curated meticulously and are some of the best tutorials on each topic available online.

# One-off algorithms

This section contains algorithms that don’t clearly fit any bucket.

# Graph Algorithms continued

- All Pairs Shortest Path (Floyd Warshall)
- Single Source Shortest Path: Bellman Ford
- Dynamic Programming on Trees (or Tree DP)
- Centroid Decomposition in Trees Tutorial

# Segment Trees + Binary Indexed Trees + MO’s algorithm

- Segment Trees
- Binary Indexed Trees (aka Fenwick Tree)
- Merge Sort Trees
- Augmented Segment Trees
- Persistent segment trees: Explained with SPOJ problems
- MO’s Algorithm (Query square root decomposition)
- Heavy Light Decomposition