https://algs4.cs.princeton.edu/home/
- union find (dynamic connection)
- quick find
- union find
- weighted
- path halving / path compression
- analysis of algorithm
- time
- space
- stacks and queues
- array stack
- linked stack
- array queue
- linked queue
- elementary sorts
- insert sort
- select sort
- merge sort
- shell sort
- array shuffle
- quick sort
- priority queues
- heap order binary tree
- minPQ / maxPQ
- heap sort
- elementary symbol tables and BSTs
- balanced search trees
- geometric applications of BSTs
- hash tables
- undirected graphs
- directed graphs
- minimum spanning trees
- shortest paths
- maximum flow
- string sorts
- tries
- substring search
- regular expressions
- data compressions
- reductions
- linear programming