splay tree

Post on 09-Feb-2016

40 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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 - אחרת - אחרת

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

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

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

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

Data Structures, CS, TAU, Splay Tree

4

k5

k4A

k3

k2

k1

C

B

D

E

F

RotateRotate

Data Structures, CS, TAU, Splay Tree

5

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

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

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

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

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

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

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

Data Structures, CS, TAU, Splay Tree

8

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

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

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

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

))

Zig-zagZig-zag

Zig-zigZig-zig

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

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:

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

Data Structures, CS, TAU, Splay Tree

12

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

Data Structures, CS, TAU, Splay Tree

13

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

Data Structures, CS, TAU, Splay Tree

14

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

Data Structures, CS, TAU, Splay Tree

15

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

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

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

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

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

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

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

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

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

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

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

Data Structures, CS, TAU, Splay Tree

25

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

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

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

top related