Oto poprawiony kod Find:

function Find(x) if x.parent == null return x

x.parent = Find(x.parent) return x.parent

Obie techniki stosowane łącznie powodują, że łączny czas operacji Find i Union jest gdzie jest liczbą elementów uniwersum, zaś bardzo wolno rosnącą odwrotnością funkcji Ackermanna (we wszystkich praktycznych sytuacjach ).

Historia Algorytm ten pierwszy raz opisali Galler i Fisher w 1964, jednak długo nie były znane ograniczenia na jego czas działania. Robert Tarjan był pierwszym, który znalazł oszacowanie przez funkcję (odwrotność funkcji Ackermanna), wcześniej najlepsze było ograniczenie podane przez Johna Hopcrofta i Jeffreya Ullmana, wynoszące (logarytm iterowany, , to inna funkcja wolno rosnąca, choć nie tak wolno jak funkcja ). Tarjan i van Leeuwen opracowali także jednoprzejściowy algorytm Find, który w praktyce jest bardziej efektywny.

Zastosowania Wiele algorytmów grafowych powszechnie używa tej struktury, m.in. Algorytm Kruskala, Algorytm Borůvki – wyznaczanie minimalnego drzewa rozpinającego graf spójny nieskierowany Algorytm znajdywania składowych spójnych grafu nieskierowanego