This is similar to finding all the connected components of a graph, which is linear in the number of edges and vertices. The standard algorithm for this approach is to do a breadth or depth first search on every vertex.
I don't think there would be a complexity speed up by leveraging the bipartite nature of the graph, except for reducing the constants associated with this algorithm.