3622
 правки
Изменения
→Реализация
 '''function''' union(a x : '''int''', b y : '''int''', newAncestor : '''int'''):        a x = dsuGet(ax)        b y = dsuGet(by)        '''if''' r[x] == r[y]  <font color=green> // ранговая эвристика </font>            r[x]++        '''else if''' r[x] < r[y]            swap(x, y)        dsu[ay] = bx        ancestor[bx] = newAncestor<font color=green> // устанавливаем нового предка представителю множества </font>
 <font color=green>// можно запустить от любой вершины дерева.</font>