Split an undirected graph into its pieces: a search from each vertex not yet labeled, or union-find over the edges.
This interactive visualization needs JavaScript.