http://www.cs.princeton.edu/~rs/AlgsDS07/
Overview
Union-Find Algorithms
Stacks and Queues
Sorting Algorithms
Advanced Topics in Sorting
Priority Queues
Symbol Tables
Binary Search Trees
Balanced Trees
Hashing
Undirected Graphs
Directed Graphs
Minimum Spanning Trees
Shortest Paths
Geometric Algorithms
Search and Intersection
Radix Sorts
Tries
Data Compression
Pattern Matching
Linear Programming
Reductions
Combinatorial Search
is perhaps the simplest problem.
and adding it to the matching if it exists. As each path can be found in
time, the running time is
. This solution is equivalent to adding a super source
with edges to all vertices in
, and a super sink
with edges from all vertices in
to
time. Another approach is based on the fast
complexity,