Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel 21.2-21.3] Gerth Stølting Brodal.

Lignende præsentationer


Præsentationer af emnet: "Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel 21.2-21.3] Gerth Stølting Brodal."— Præsentationens transcript:

1 Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel 21.2-21.3] Gerth Stølting Brodal

2 Union-Find MakeSet( S, x ) Union( x, y ) FindSet( x ) Opret en ny mængde S = { x } Erstat S x ={...,x,... } S y ={...,x,... } med S x U S y ={...,x,...,y,... } Retuner en repræsentant for S x ={...,x,... } FindSet( x ) = FindSet( y ) hvis og kun hvis x og y er i samme mængde

3 Eksempel : Union-Find x1x1 x 10 x9x9 x8x8 x7x7 x6x6 x5x5 x4x4 x3x3 x2x2 x 11 xixi FindSet( x i ) x1x1 x4x4 x2x2 x3x3 x3x3 x3x3 x4x4 x4x4 x5x5 x4x4 x6x6 x4x4 x7x7 x7x7 x8x8 x4x4 x9x9 x4x4 x 10 x 11 x4x4

4 Trærepræsentation (I) Mængde = enkeltkædet liste MakeSet = lav en ny knude FindSet = retuner sidste knude Union = konkatener listerne MakeSet( S, x ) O(1) Union( x, y ) O(|S x |+|S y |) FindSet( x ) O(|S x |)

5 Trærepræsentation (II) Mængde = enkelt kædet liste MakeSet = lav en ny knude FindSet = retuner sidste knude Union = konkatener listerne og opdater pointerne MakeSet( S, x ) O(1) Union( x, y ) O(min(|S x |,|S y |)) FindSet( x ) O(1)

6 Sekvens af Union Sætning Et sekvens af n union operationer tager tid højest O(n·log n) Bevis Hver pointer flyttes højest log n gange (hver gang til en liste der mindst er dobbelt så stor)

7 Trærepræsentation Union Mængde = træ MakeSet = lav en ny knude FindSet = retuner roden Union = Sæt det ”lille” træ under roden af det ”store” træ

8 Stikomprimering stikomprimering linking ved rank

9 Lemma height[rod] ≤ rank[rod] size[rod] ≥ 2 rank[rod] Bevis Induktion. MakeSet( S, x ) O(1) Union( x, y ) O((log |S x |)+(log |S y |)) FindSet( x ) O(log |S x |) (Ovenstående udnytter kun linking by rank) Analyse af Trærepræsentation med Rank-Linkning

10 Analyse af Trærepræsentation med Stikomprimering Sætning En sekvens af m Union-Find operationer på n elementer tager tid O(m·α(n)) hvor α(n) er den Inverse til Ackerman funktionen ([CLRS], kapitel 21.4) som for alle praktiske formål α(n) ≤ 4.


Download ppt "Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel 21.2-21.3] Gerth Stølting Brodal."

Lignende præsentationer


Annoncer fra Google