Top Banner
1 Self-Adjusting Data Structures
7

1 Self-Adjusting Data Structures. 2 Lists [D.D. Sleator, R.E. Tarjan, Amortized Efficiency of List Update Rules, Proc. 16 th Annual ACM Symposium on Theory.

Dec 18, 2015

Download

Documents

Marjory Cook
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Self-Adjusting Data Structures. 2 Lists [D.D. Sleator, R.E. Tarjan, Amortized Efficiency of List Update Rules, Proc. 16 th Annual ACM Symposium on Theory.

1

Self-Adjusting Data Structures

Page 2: 1 Self-Adjusting Data Structures. 2 Lists [D.D. Sleator, R.E. Tarjan, Amortized Efficiency of List Update Rules, Proc. 16 th Annual ACM Symposium on Theory.

2

Self-Adjusting Data Structures

Lists[D.D. Sleator, R.E. Tarjan, Amortized Efficiency of List Update Rules, Proc. 16th Annual ACM Symposium on Theory of Computing, 488-492, 1984]

Dictionaries[D.D. Sleator, R.E. Tarjan, Self-Adjusting Binary Search Trees, Journal of the ACM, 32(3): 652-686, 1985] splay trees

Priority Queues[C.A. Crane, Linear lists and priority queues as balanced binary trees, PhD thesis, Stanford University, 1972][D.E. Knuth. Searching and Sorting, volume 3 of The Art of Computer Programming, Addison-Wesley, 1973] leftist heaps

[D.D. Sleator, R.E. Tarjan, Self-Adjusting Heaps, SIAM Journal of Computing, 15(1): 52-69, 1986] skew heaps

[C. Okasaki, Alternatives to Two Classic Data Structures, Symposium on Computer Science Education, 162-165, 2005] maxiphobix heaps

Okasaki: maxiphobix heaps are an alternative to leftist heaps ... but without the “magic”

7 42 3591Search(2), Search(2), Search(2) , Search(5), Search(5), Search(5)

2 75 3914mov

e-to

-fron

t

Page 3: 1 Self-Adjusting Data Structures. 2 Lists [D.D. Sleator, R.E. Tarjan, Amortized Efficiency of List Update Rules, Proc. 16 th Annual ACM Symposium on Theory.

= Meld ( , )

Meld ( , )

Meld ( , ) =

[C.A. Crane, Linear lists and priority queues as balanced binary trees, PhD thesis, Stanford University, 1972][D.E. Knuth. Searching and Sorting, volume 3 of The Art of Computer Programming,Addison-Wesley, 1973]

MakeHeap, FindMin, Insert, Meld, DeleteMin

3

HeapsMeld Cut root + Meld

= =

(via Binary Heap-Ordered Trees)

Maxiphobic Heaps

T3

y

T1 T2

x

Ti Tj Tk

x

largest size two smallest

Max size n ⅔n

Time O(log3/2 n)

Each node distance to empty leafInv. Distance right child left childÞ rightmost path log n+1 nodes

5

2

3

4 6

8

1011

13

97

12

13

1

1 1

1

1

1

2

2

1

22

3

1

x < y

[C. Okasaki, Alternatives to Two Classic Data Structures,Symposium on Computer Science Education,

162-165, 2005]

Leftist Heaps

4

7

9

13

2

2

2

4

1

1

1

2

3

3

3

1

4

132

1

2

7

9

2

2

4

1

1

2

3

merge rightm

ost paths

Time O(log n)

Page 4: 1 Self-Adjusting Data Structures. 2 Lists [D.D. Sleator, R.E. Tarjan, Amortized Efficiency of List Update Rules, Proc. 16 th Annual ACM Symposium on Theory.

Meld ( , ) =

[D.D. Sleator, R.E. Tarjan, Self-Adjusting Heaps, SIAM Journal of Computing, 15(1): 52-69, 1986]

4

Skew Heaps

Meld Cut root + Meld

= =

O(log n) amortized MeldHeavy right child on merge path before meld replaced by light child 1 potential released for heavy node amortized cost 2 # ∙ light children on rightmost paths before meld

4

7

9

13

2

4

13 7

9

2

merge rightm

ost paths

Heap ordered binary tree with no balance information MakeHeap, FindMin, Insert, Meld, DeleteMin

Meld = merge rightmost paths + swap all siblings on merge path

v heavy if |Tv| > |Tp(v)|/2, otherwise lightÞ any path log n light nodes

Potential = # heavy right children in tree

5

2

3

4 6

8

10

97

12

Page 5: 1 Self-Adjusting Data Structures. 2 Lists [D.D. Sleator, R.E. Tarjan, Amortized Efficiency of List Update Rules, Proc. 16 th Annual ACM Symposium on Theory.

Meld ( , ) =

[D.D. Sleator, R.E. Tarjan, Self-Adjusting Heaps, SIAM Journal of Computing, 15(1): 52-69, 1986]

5

Skew Heaps – O(1) time Meld

O(1) amortized MeldHeavy right child on merge path before meld replaced by light child 1 potential releasedLight nodes disappear from major paths (but might heavy) 1 potential released and become a heavy or light right children on major path potential increase by 4

O(log n) amortized DeleteMinCutting root 2 new minor paths, i.e. 2 log ∙ n new light children on minor & major paths

4

7

9

13

24

13

merge rightm

ost paths

Meld = Bottom-up merg of rightmost paths + swap all siblings on merge path

7

9

2

1

1

5

8

11

6

3

not touched

previously minor

4

2

1

11

6

3

5

8

minor

major

= # heavy right children in tree + 2 ∙ # light children on minor & major path

=

4 5

Page 6: 1 Self-Adjusting Data Structures. 2 Lists [D.D. Sleator, R.E. Tarjan, Amortized Efficiency of List Update Rules, Proc. 16 th Annual ACM Symposium on Theory.

6

[D.D. Sleator, R.E. Tarjan, Self-Adjusting Binary Search Trees, Journal of the ACM, 32(3): 652-686, 1985]Splay Trees Binary search tree with no balance information splay(x) = rotate x to root (zig/zag, zig-zig/zag-zag, zig-zag/zag-zig)

Search (splay), Insert (splay predecessor+new root), Delete (splay+cut root+join), Join (splay max, link), Split (splay+unlink)

B

y

A

xC

C

x

B

yA

zig

B

y

A

xC

D

y

C

zB

zig-zigz

D

x

A

C

y

B

xA

D

x

C

z

B

zig-zagz

D y

A

root

D

y

C

xB

v

Fz

A

u

E

B

x

A

zC

zag-zagzig-zig

F

u

E

vD

y

B

x

A

zC

F

u

E

vD

y

insert

Page 7: 1 Self-Adjusting Data Structures. 2 Lists [D.D. Sleator, R.E. Tarjan, Amortized Efficiency of List Update Rules, Proc. 16 th Annual ACM Symposium on Theory.

7

[D.D. Sleator, R.E. Tarjan, Self-Adjusting Binary Search Trees, Journal of the ACM, 32(3): 652-686, 1985]Splay Trees

The access bounds of splay trees are amortized

(1) O(log n) (2) Static optimal(3) Static finger optimal(4) Working set optimal (proof requires dynamic change of weight)

Static optimality: = v log |Tv|