SlideServe
Menu
Préférences
© SlideServe · v2026

Disjoint Sets Data Structures: Illustrated with Theoretical Concepts

obanion avatar
15 diapositives · 183 Views · Dec 19, 2019

Explore disjoint-set data structure operations like MAKE-SET, UNION, and FIND-SET. Learn weight-union heuristics, path compression, union by rank, and theorems for efficient implementations. Discover how to apply these concepts to linked-list representations and disjoint-set forests.

Disjoint Sets Data Structures: Illustrated with Theoretical Concepts - slide 1
1 / 15

Télécharger la présentation

Disjoint Sets Data Structures: Illustrated with Theoretical Concepts
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Chapter 21 Data Structures for Disjoint Sets Lee, Hsiu-Hui Ack: This presentation is based on the lecture slides from Prof. Tsai, Shi-Chun as well as various materials from the web. .

  2. Disjoint-set Data Structure • To maintain a collection of disjoint dynamicsets S = {S1, S2, …, Sk}. Each set Si is identified by a representativex=rep[Si]. • Operations: MAKE-SET(x): creates a new set whose only member is x. with rep[{x}] = x (for any x ∉ Si for all i). UNION(x, y): replaces sets Sx, Sywith Sx∪ Sy in S for any x, y in distinct sets Sx, Sy . FIND-SET(x): returns representative of set Sxcontaining x. Hsiu-Hui Lee

  3. a b e f h j c d g i (a) Connected Component: an application Hsiu-Hui Lee

  4. CONNECTED-COMPONENTS(G) 1 for each vertex v  V[G] 2 do MAKE-SET(v) 3 for each edge (u,v)  E[G] 4 do if FIND-SET(u) ≠ FIND-SET(v) • then UNION(u,v) SAME-COMPONENT(u,v) 1 if FIND-SET(u) = FIND-SET(v) 2 then return TRUE 3 else return FALSE Hsiu-Hui Lee

  5. Linked-list representation of disjoint sets The first object in each linked list serve as its set’s representative Hsiu-Hui Lee

  6. MAKE-SET(x) : O(1) FIND-SET(x) : O(1) UNION(x, y) : by appending x’s list onto the end of y’s list UNION (e, g) Hsiu-Hui Lee

  7. Θ(n) Θ(1+2+...+n) =Θ(n2) A simple implementation of union m: # of operation = 2n-1 Amortized time : Θ(n) Hsiu-Hui Lee

  8. A weight-union heuristic • In simple implementation of union, we may be appending a longer list onto a shorter list • Weighted-union heuristic To append the smaller list onto the longer Hsiu-Hui Lee

  9. Theorem 21.1 • Using the linked-list representation of disjoint sets and the weight-union heuristic, a sequence of m MAKE-SET, UNION, and FIND-SET operations, n of which are MAKE-SET operations, takes O( m + n lg n) time. Hsiu-Hui Lee

  10. Disjoint-set forests • We represent sets by rooted trees. • Each node contains one member and each tree represents one set. • In a disjoint-set forest, each member points to its parent. UNION (e, g) Hsiu-Hui Lee

  11. Heuristics to improve the running time • Union by rank The root with smaller rank is made to point to the root with larger rank during a UNION operation • Path compression During FIND-SET, to make each node on the find path point directly to the root. Hsiu-Hui Lee

  12. Before FIND-SET(a) After FIND-SET(a) Hsiu-Hui Lee

  13. Pseudo code for disjoint-set forests MAKE-SET(x) 1p[x]  x 2rank[x]  0 UNION(x, y) 1 LINK(FIND-SET(x), FIND-SET(y)) path compression Hsiu-Hui Lee

  14. union by rank LINK(x, y) 1 if rank[x] > rank[y] 2 then p[y]  x 3 else p[x]  y 4 if rank[x] = rank[y] 5 then rank[y]  rank[y] + 1 FIND-SET(x) 1 if x ≠ p[x] 2 then p[x]  FIND-SET(p[x]) 3 return p[x] Hsiu-Hui Lee

  15. Effect of the heuristics • Either union by rank or path compression improves the running time. O(m lg n) --- union by rank Θ(n + f ‧ (1+log2+f/nn)) --- path comprsssion • The improvement is greater when the two heuristics are used together. O(m  (n)) --- both Hsiu-Hui Lee