splay tree

25
Data Structures, C S, TAU, Splay Tree 1 Splay Tree Splay Tree יי ייייי יייייי יי ייייי יייייי- יייי ייייי י- יייי ייייי יAmortized Time Amortized Time ייייי ייייי- ייייי ייייי- ייייי יייי ייייי ייייO(N) O(N) ייי יי ייי ייי יי יייM M יייייי יייי יייייי יייי) ) O(M log N O(M log N יי יי) יי יייי- יי ייייי יייייייי יי) יי יייי- י יי ייייי יייייי יי יייייי יייי ייייי ייייי יייי יי יייייי יייי ייייי ייייי יייי ייייי ייייי יי ייי ייייי ייייי יי ייי יייי- יייי- M M - ייייי יייי ייייי י- ייייי יייי ייייי י) ) O(M*N O(M*N יייי יייייייי יי יייייי ייייי ייי יייי יייייייי יי יייייי ייייי ייי יייייי. יייייי. ייייי ייייי: ייייי יייייי- ייייי ייייי: ייייי יייייי- ייי יייי ייייי ייי יייי ייייי

Upload: aradia

Post on 09-Feb-2016

40 views

Category:

Documents


2 download

DESCRIPTION

O(N). - פעולה בודדת יכולה לקחת. (O(M log N. - אבל כל רצף M פעולות לוקח. - בעית עץ חיפוש בינארי - עץ עמוק (לא מאוזן).  אם ביקשנו צומת מסוים הנמצא עמוק עלינו לשנות את העץ - אחרת M גישות אליו יגרמו ל -. (O(M*N. - תכונה נוספת: צמתים שנגענו בהם צפים למעלה. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Splay Tree

Data Structures, CS, TAU, Splay Tree

1

Splay TreeSplay Tree

- עץ חיפוש בינארי- עץ חיפוש בינארי Amortized TimeAmortized Time- מטרה לדאוג ל- - מטרה לדאוג ל-

- פעולה בודדת יכולה - פעולה בודדת יכולה לקחתלקחת

O(N)O(N) O(M log NO(M log N ) )פעולות לוקחפעולות לוקח MM- אבל כל רצף - אבל כל רצף

- בעית עץ חיפוש בינארי - עץ עמוק )לא מאוזן(- בעית עץ חיפוש בינארי - עץ עמוק )לא מאוזן(

אם ביקשנו צומת מסוים הנמצא עמוק אם ביקשנו צומת מסוים הנמצא עמוק עלינו לשנות את העץ עלינו לשנות את העץ

O(M*NO(M*N ) )גישות אליו יגרמו ל- גישות אליו יגרמו ל- MM - אחרת - אחרת

תורם לביצועים כי סיכויי הגישה החוזרת תורם לביצועים כי סיכויי הגישה החוזרת גבוהים. גבוהים.

- תכונה נוספת: צמתים שנגענו בהם - תכונה נוספת: צמתים שנגענו בהם צפים למעלהצפים למעלה

Page 2: Splay Tree

Data Structures, CS, TAU, Splay Tree

2

פשוט:פשוט: רעיוןרעיוןRotateRotateהצף את הצומת שניגשו אליו ע”י הצף את הצומת שניגשו אליו ע”י

k5דוגמא:דוגמא:

k4

A

k3

k2

k1

CB

DE

F

)מסלול גישה )מסלול גישה מסומן מסומן באדום(באדום(

RotateRotate k5

k4

A

k3

k1

k2 C

B

DE

F

RotateRotate

Page 3: Splay Tree

Data Structures, CS, TAU, Splay Tree

3

k5

k4

A

k3k2

k1

CB D

EF

)מסלול גישה )מסלול גישה מסומן מסומן באדום(באדום(

RotateRotate k5

k4

A k3

k2

k1

C

B

D

E

F

RotateRotate

Page 4: Splay Tree

Data Structures, CS, TAU, Splay Tree

4

k5

k4A

k3

k2

k1

C

B

D

E

F

RotateRotate

Page 5: Splay Tree

Data Structures, CS, TAU, Splay Tree

5

kk11שקוע )כמעט( לעומקו המקורי של שקוע )כמעט( לעומקו המקורי של kk33 בעיה:בעיה:

ישנם מקרים שלוקחים ישנם מקרים שלוקחיםבעיה:בעיה:

בעיות בעץבעיות בעץ

דוגמה לבעיה זו בעמ’ הבא.דוגמה לבעיה זו בעמ’ הבא.

לא בטוח ש צריך את לא בטוח ש צריך את הדוגמא בכלל!!!!הדוגמא בכלל!!!!

Page 6: Splay Tree

Data Structures, CS, TAU, Splay Tree

6

דוגמא:דוגמא:Find(1)Find(1)

5

34

21

5

34

12

5

14

23

51

23

4

2

1

34

5

Page 7: Splay Tree

Data Structures, CS, TAU, Splay Tree

7

2

1

34

5 Find(2)Find(2)

3

1

45

2

3

14

52

Find(3)Find(3)3

1 452

Find(4)Find(4)

3

1

45

2

Page 8: Splay Tree

Data Structures, CS, TAU, Splay Tree

8

NN פעולות לוקחות פעולות לוקחות NM

שפוץ: שפוץ: משופר,משופר, RotateRotate ביצוע ביצוע

המבוצע על שלישיית צמתים.המבוצע על שלישיית צמתים.

) שתי אפשרויות:) שתי אפשרויות:

))

Zig-zagZig-zag

Zig-zigZig-zig

Page 9: Splay Tree

Data Structures, CS, TAU, Splay Tree

9

A

D

G

P

B C

X

A B

G

P

C D

X

Zig-zZig-zaagg

A

D

GP

BCX

A

D

GP

BC

X

Zig-zZig-ziigg

Page 10: Splay Tree

Data Structures, CS, TAU, Splay Tree

10

חזרה לדוגמאחזרה לדוגמא

k5

k4

A

k3k2

k1

CB D

E

F

kk11,, Zig-Zag gives:Zig-Zag gives:

k5

k4

A

k3

k2

k1

C

B

D

E F

kk11,, Zig-Zig gives:Zig-Zig gives:

Page 11: Splay Tree

Data Structures, CS, TAU, Splay Tree

11

Splaying at node 1Splaying at node 1

5

34

21

76

54

76

12

3

1

46

57

23

1

2

76

4

35

Page 12: Splay Tree

Data Structures, CS, TAU, Splay Tree

12

דוגמאדוגמא)אותה דוגמה חוזרת מוגדלת מאוחר יותר()אותה דוגמה חוזרת מוגדלת מאוחר יותר(

Page 13: Splay Tree

Data Structures, CS, TAU, Splay Tree

13

המשך דוגמאהמשך דוגמא

Page 14: Splay Tree

Data Structures, CS, TAU, Splay Tree

14

המשך דוגמאהמשך דוגמא

Page 15: Splay Tree

Data Structures, CS, TAU, Splay Tree

15

סוף דוגמאסוף דוגמא

Page 16: Splay Tree

Data Structures, CS, TAU, Splay Tree

16

Result of splaying at node 1 Result of splaying at node 1 a tree of all left childrena tree of all left children

32 5

4 76 9

8 1110 13

12 1514 17

16 1918 21

20 2322 25

24 2726 29

28 3130

32

1

אותה דוגמא מוגדלתאותה דוגמא מוגדלת

Page 17: Splay Tree

Data Structures, CS, TAU, Splay Tree

17

Result of splaying previousResult of splaying previoustree at node 2tree at node 2

4

5 76

32

2

3

8

9 1110

12

13 1514

16

17 1918

20

21 2322

24

25 2726

28

29 3130

1

Page 18: Splay Tree

Data Structures, CS, TAU, Splay Tree

18

Result of splaying previousResult of splaying previoustree at node 3tree at node 3

4

3

8

9 11

10

2

5 7

6

12

16

17 19

18

13 15

14

20

24

25 27

26

21 23

22

28

32

29 31

30

1

Page 19: Splay Tree

Data Structures, CS, TAU, Splay Tree

19

Result of splaying previousResult of splaying previoustree at node 4tree at node 4

6

32

32

8

9 11

10

7

5

28

29 31

30

1

16

17 19

18

13 15

1424

25 27

26

21 23

22

4

20

12

Page 20: Splay Tree

Data Structures, CS, TAU, Splay Tree

20

Result of splaying previousResult of splaying previoustree at node 5tree at node 5

32

32

28

29 31

30

1

16

17 19

18

13 15

1424

25 27

26

21 23

22

4

20

8

9 11

10

6

7

5

12

Page 21: Splay Tree

Data Structures, CS, TAU, Splay Tree

21

Result of splaying previousResult of splaying previoustree at node 6tree at node 6

32

28

29 31

30

16

17 19

18

13 15

1424

25 27

26

21 23

22

20

8

9 11

107

12

32

1

45

6

Page 22: Splay Tree

Data Structures, CS, TAU, Splay Tree

22

Result of splaying previousResult of splaying previoustree at node 7tree at node 7

32

28

29 31

30

16

17 19

18

13 15

1424

25 27

26

21 23

22

20

9 11

10

1232

1

45

67

8

Page 23: Splay Tree

Data Structures, CS, TAU, Splay Tree

23

Result of splaying previousResult of splaying previoustree at node 8tree at node 8

32

28

29 31

30

16

17 19

18

13 15

1424

25 27

26

21 23

22

20

9 11

10

123

21

45

67

8

Page 24: Splay Tree

Data Structures, CS, TAU, Splay Tree

24

Result of splaying previousResult of splaying previoustree at node 9tree at node 9

32

28

29 31

30

16

17 19

18

13 15

1424

25 27

26

21 23

22

20

9

10

11

12

32

1

45

67

8

Page 25: Splay Tree

Data Structures, CS, TAU, Splay Tree

25

הערות:הערות:

( פעולות זולות - עשויות להוליך לעץ( פעולות זולות - עשויות להוליך לעץ11 לא טוב )כמו בנית העץ המקורי( לא טוב )כמו בנית העץ המקורי(

( פעולות יקרות - מוליכות לעץ טוב ( פעולות יקרות - מוליכות לעץ טוב 22 זמן זמן AmmortizedAmmortized יהיה טוביהיה טוב