Download presentation
Presentation is loading. Please wait.
1
1 Data Structures, CS, TAU, Splay Tree Splay Tree מימוש של עץ חיפוש בינארי מטרה לדאוג ל- Amortized Time פעולה בודדת יכולה לקחת O(N) אבל כל רצף M פעולות לוקח O(M log N) בעית עץ חיפוש בינארי - עץ עמוק (לא מאוזן) אם ביקשנו צומת מסוים הנמצא עמוק עלינו לשנות את העץ - אחרת M גישות אליו יגרמו ל- O(M*N) תורם לביצועים כי סיכויי הגישה החוזרת גבוהים. - תכונה נוספת: צמתים שנגענו בהם צפים למעלה
2
2 Data Structures, CS, TAU, Splay Tree הצף את הצומת שניגשו אליו ע”י Rotate דוגמא: k5k5 k4k4 A k3k3 k2k2 k1k1 C B D E F (מסלול גישה מסומן באדום) Rotate k5k5 k4k4 A k3k3 k1k1 k2k2 C B D E F רעיון פשוט
3
3 Data Structures, CS, TAU, Splay Tree k5k5 k4k4 A k3k3 k2k2 k1k1 CB D E F (מסלול גישה מסומן באדום) Rotate k5k5 k4k4 A k3k3 k2k2 k1k1 C B D E F
4
4 Data Structures, CS, TAU, Splay Tree k5k5 k4k4 A k3k3 k2k2 k1k1 C B D E F Rotate
5
5 Data Structures, CS, TAU, Splay Tree בעיה: k 3 שקוע (כמעט) לעומקו המקורי של k 1 בעיה: ישנם מקרים שלוקחים (M*N) דוגמה לבעיה זו בעמ’ הבא. בעיות בעץ
6
6 Data Structures, CS, TAU, Splay Tree Find(1) 5 3 4 2 1 53 4 1 2 5 1 4 2 3 5 1 2 3 4 2 1 3 4 5 דוגמא
7
7 Data Structures, CS, TAU, Splay Tree 2 1 3 4 5 Find(2) 3 1 4 5 2 3 1 4 5 2 Find(3) 3 1 4 5 2 Find(4) 3 1 4 5 2
8
8 Data Structures, CS, TAU, Splay Tree N פעולות לוקחות שפוץ: ביצוע Rotate משופר, המבוצע על שלישיית צמתים. שתי אפשרויות: Zig-zag Zig-zig ?
9
9 Data Structures, CS, TAU, Splay Tree A D G P B C X A B G P C D X Zig-zag A D G P B C X A D G P B C X Zig-zig
10
10 Data Structures, CS, TAU, Splay Tree דוגמא: k5k5 k4k4 A k3k3 k2k2 k1k1 C B D E F (מסלול גישה מסומן באדום) Rotate חזרה לדוגמה
11
11 Data Structures, CS, TAU, Splay Tree k5k5 k4k4 A k3k3 k2k2 k1k1 C B D E F k 1, Zig-Zag gives: k5k5 k4k4 A k3k3 k2k2 k1k1 C B D E F k 1, Zig-Zig gives: חזרה לדוגמא
12
12 Data Structures, CS, TAU, Splay Tree 5 3 4 2 1 7 6 5 4 7 6 1 2 3 1 4 6 5 7 2 3 1 2 7 6 4 3 5 Splaying at Node 1
13
13 Data Structures, CS, TAU, Splay Tree דוגמא (אותה דוגמה חוזרת מוגדלת מאוחר יותר)
14
14 Data Structures, CS, TAU, Splay Tree המשך דוגמא
15
15 Data Structures, CS, TAU, Splay Tree המשך דוגמא
16
16 Data Structures, CS, TAU, Splay Tree סוף דוגמא
17
17 Data Structures, CS, TAU, Splay Tree 3 2 5 4 7 6 9 8 11 10 13 12 15 14 17 16 19 18 21 20 23 22 25 24 27 26 29 28 31 30 32 1 אותה דוגמא מוגדלת Result of splaying at node 1 a tree of all left children גובה עץ קטן פי 2!
18
18 Data Structures, CS, TAU, Splay Tree 4 5 7 6 32 2 3 8 9 11 10 12 13 15 14 16 17 19 18 20 21 23 22 24 25 27 26 28 29 31 30 1 Result of splaying previous tree at node 2 גובה עץ קטן פי 2!
19
19 Data Structures, CS, TAU, Splay Tree 4 3 8 911 10 2 57 6 12 16 1719 18 1315 14 20 24 2527 26 2123 22 28 32 2931 30 1 Result of splaying previous tree at node 3 גובה עץ קטן פי 2!
20
20 Data Structures, CS, TAU, Splay Tree 6 32 3 2 8 911 10 7 5 28 2931 30 1 16 1719 18 1315 14 24 2527 26 2123 22 4 20 12 Result of splaying previous tree at node 4
21
21 Data Structures, CS, TAU, Splay Tree 32 3 2 28 2931 30 1 16 1719 18 1315 14 24 2527 26 2123 22 4 20 8 911 10 6 7 5 12 Result of splaying previous tree at node 5
22
22 Data Structures, CS, TAU, Splay Tree 32 28 2931 30 16 1719 18 1315 14 24 2527 26 2123 22 20 8 911 10 7 12 3 2 1 4 5 6 Result of splaying previous tree at node 6
23
23 Data Structures, CS, TAU, Splay Tree 32 28 2931 30 16 1719 18 1315 14 24 2527 26 2123 22 20 911 10 12 3 2 1 4 5 6 7 8 Result of splaying previous tree at node 7
24
24 Data Structures, CS, TAU, Splay Tree 32 28 2931 30 16 1719 18 1315 14 24 2527 26 2123 22 20 911 10 12 3 2 1 4 5 6 7 8 Result of splaying previous tree at node 8
25
25 Data Structures, CS, TAU, Splay Tree 32 28 2931 30 16 1719 18 1315 14 24 2527 26 2123 22 20 9 10 11 12 3 2 1 4 5 6 7 8 Result of splaying previous tree at node 9
26
26 Data Structures, CS, TAU, Splay Tree הערות 1) פעולות זולות - עשויות להוליך לעץ לא טוב (כמו בנית העץ המקורי) 2) פעולות יקרות - מוליכות לעץ טוב זמן Amortized יהיה טוב
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.