Estructura de datos de búsqueda de unión
Para muchos problemas, veo que la solución recomendada es utilizar una estructura de datos de búsqueda de unión. Intenté leer al respecto y pensar cómo se implementa (usando C ++). Mi comprensión actual es que no es más que una lista de conjuntos. Entonces, para encontrar a qué conjunto pertenece un elemento, necesitamosn*log n
operaciones. Y cuando tenemos que realizar la unión, tenemos que encontrar los dos conjuntos que deben fusionarse y hacer unset_union
en ellos. Esto no me parece terriblemente eficiente. ¿Mi comprensión de esta estructura de datos es correcta o me falta algo?