splay tree
DESCRIPTION
O(N). - פעולה בודדת יכולה לקחת. (O(M log N. - אבל כל רצף M פעולות לוקח. - בעית עץ חיפוש בינארי - עץ עמוק (לא מאוזן). אם ביקשנו צומת מסוים הנמצא עמוק עלינו לשנות את העץ - אחרת M גישות אליו יגרמו ל -. (O(M*N. - תכונה נוספת: צמתים שנגענו בהם צפים למעלה. - PowerPoint PPT PresentationTRANSCRIPT
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 יהיה טוביהיה טוב