The Hopcroft-Karp Algorithm Finds the Maximum Matching in a Bipartite Graph, A Graph whose Vertices can be Separated into Two Disjoint Sets, with Every Edge Connecting Vertices between These sets and ...