223
правки
Изменения
Нет описания правки
При объединении двух множеств, корень одного дерева подвешивается к другому (операция ''union''). Таким образом, чтобы определить, в каком множестве находится элемент достаточно пройтись по ссылкам по дереву вверх до корня (операция ''get'').
===Объединение по рангу===
===Сжатие пути===
Эта эвристика несколько модифицирует операцию ''get'' и делает ее двухпроходной. Операция get вызывается для элемента ''x'' (''get(x)''), проходит через несколько вершин и попадает в корень. Все пройденные в этом процессе вершины принадлежат тому же множеству, что и ''x''. Поэтому подвесим (изменим ссылки) их напрямую к корню дерева и, таким образом, уменьшим его высоту. При нерукурсивной реализации операция ''get'' становится двухпроходной.
==Асимптотика==
:''см. также [[Анализ_реализации_с_ранговой_эвристикой|Анализ реализации с ранговой эвристикой]]''
|-
! union Операция !! Истинное время !! Амортизированное время|- style = "text-align = center"| ''get'' || O(log(n)) || 1O*(α(n))
|-
|}
==Ссылки==