Wikipedia dit que l'union par rang sans compression de chemin donne une complexité temporelle amortie de , et que l'union par rang et la compression de chemin donnent une complexité temporelle amortie de (où est le inverse de la fonction Ackerman). Cependant, il ne mentionne pas le temps d'exécution de la compression de chemin sans rang d'union, ce que j'implémente habituellement moi-même.O ( α ( n ) ) α
Quelle est la complexité en temps amorti de l'union-find avec l'optimisation de la compression de chemin, mais sans l'optimisation de l'union par rang?
complexity-theory
time-complexity
union-find
Filip Haglund
la source
la source
Réponses:
Seidel et Sharir ont prouvé en 2005 [1] que l'utilisation de la compression de chemin avec une liaison arbitraire à peu près surm opérations a une complexité d'environ O ( ( m + n ) log( n ) ) .
Voir [1], Section 3 (Liaison arbitraire): SoitF( m , n ) le temps d'exécution de union-find avec m opérations et n éléments. Ils ont prouvé ce qui suit:
Selon [1], la définition de donne .k = ⌈ m / n ⌉ + 1 F( m , n ) ≤ ( 2 m + n ) log⌈ m / n ⌉ + 1n
Une borne similaire a été donnée en utilisant une méthode plus complexe par Tarjan et van Leeuwen dans [2], Section 3:
[1]: R. Seidel et M. Sharir. Analyse descendante de la compression des chemins. Siam J. Computing, 2005, vol. 34, n ° 3, pp. 515-525.
[2]: R. Tarjan et J. van Leeuwen. Analyse des pires cas des algorithmes d'union d'ensemble. J. ACM, vol. 31, n ° 2, avril 1984, pp. 245-281.
la source
la source