disconnected

Encontrar todos los subgrafos desconectados en un gráfico

Tengo un gráfico que contiene un número desconocido de desconectado subdiagramas. ¿Qué es un buen algoritmo (o biblioteca Java) para encontrarlos todos?