pub fn union_find_sequential( n: usize, edges: &[(NodeId, NodeId)], ) -> Result<Vec<ComponentId>>
Sequential union-find on edge list.
Computes connected components from undirected edges.