  We show that the pseudoflow algorithm for maximum flow is particularly
efficient for the bipartite matching problem both in theory and in practice. We
develop several implementations of the pseudoflow algorithm for bipartite
matching, and compare them over a wide set of benchmark instances to
state-of-the-art implementations of push-relabel and augmenting path algorithms
that are specifically designed to solve these problems. The experiments show
that the pseudoflow variants are in most cases faster than the other
algorithms.
  We also show that one particular implementation---the matching pseudoflow
algorithm---is theoretically efficient. For a graph with $n$ nodes, $m$ arcs,
$n_1$ the size of the smaller set in the bipartition, and the maximum matching
value $\kappa \leq n_1$, the algorithm's complexity given input in the form of
adjacency lists is $O(\min{n_1\kappa,m} + \sqrt{\kappa}\min{\kappa^2,m})$.
Similar algorithmic ideas are shown to work for an adaptation of Hopcroft and
Karp's bipartite matching algorithm with the same complexity. Using boolean
operations on words of size $\lambda$, the complexity of the pseudoflow
algorithm is further improved to $O(\min{n_1\kappa, \frac{n_1n_2}{\lambda}, m}
+ \kappa^2 + \frac{\kappa^{2.5}}{\lambda})$. This run time is faster than for
previous algorithms such as Cheriyan and Mehlhorn's algorithm of complexity
$O(\frac{n^{2.5}}{\lambda})$.
