Download presentation
Presentation is loading. Please wait.
1
ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים
2
תזכורת : Heaps עץ בינארי מלא החוק הבסיסי אם צומת B צאצא של צומת A אזי Key(A)≤Key(B) הפעולות הנתמכות Find-min Delete-min Decrease-key Insert Meld
3
תזכורת : Heaps מחיקת השורש הוספת צומת ( עבור max-heap) 15 4
4
תרגיל 1 בהינתן מערך באורך n, נרצה ליצור min heap ע " י הכנסה סדרתית של ערכי המערך. הראו סדרת הפעולות לוקחת Ω(nlogn) במקרה הכי גרוע (worst case) פתרון נצטרך להראות דוגמה של סדרת ההכנסות שלוקחת Ω(nlogn) פעולות נחפש סדרה ש " תקשה " כמה שיותר על ה -heap
5
תרגיל 1 nn-1n-2n-3 … 21 nn n-1 n nn-2 nn-1 …
6
תרגיל 1 כל ערך שנוסיף צריך לבעבע לראש העץ n/2 ההכנסות האחרונות לוקחות לפחות log(n/2) כל אחת מסקנה : W.C = Ω(nlogn)
7
תרגיל 2 בהינתן heap שתומך בפעולות extract-min ו - insert בזמן f(n) amortized, הראו שניתן למיין מערך מגודל n בזמן O(n∙f(n)) פתרון נבצע n פעולות הכנסה בזמן O(n∙f(n)) מבצע n פעולות הוצאת מינימום בזמן O(n∙f(n)) סה " כ O(n∙f(n)) אלגוריתם מיון זה נקרא heap-sort בשיעור תלמדו כי מיון n אברים הוא Ω(n∙logn)
8
תרגיל 3 – Median Heap ממשו מבנה נתונים התומך בפעולות insert בזמן O(logn) extract-median בזמן O(logn) find-median בזמן O(1) 2457 8 12141520
9
תרגיל 3 - פתרון Max-heap Min-heap + האברים הקטנים ( עד החציון ) האברים הגדולים ( מהחציון )
10
תרגיל 3 - פתרון נשתמש ב -max-heap ו -min-heap n/2 הערכים הקטנים ביותר יישמרו ב -max-heap השאר יישמרו ב -min-heap החציון תמיד נמצא בשורש של אחד מהם Max-heap Min-heap + 2457812141520 Min-Heap Max-Heap
11
תרגיל 3 - פתרון Find-median If (size(minheap)>size(maxheap)) return getmin(minheap) Else return getmax(maxheap) Insert(x) If (x<getmin(minheap)) Insert(maxheap,x) Else Insert(minheap,x) If (abs(size(minheap)-size(maxheap))>1) Balance heaps (move root from bigger heap to smaller heap) Extract-Median Extract median from the max-heap or min-heap … O(1) O(logn)
12
שאלה 1 בערימת מקסימום, החציון נמצא בהכרח : א. בשורש. ב. בעומק לכל היותר. ג. בן ישיר של השורש. ד. בשתי השכבות הנמוכות ביותר. ה. אף אחד מהנ " ל.
13
תשובה 1 ה. החציון יכול להיות בן ישיר של השורש ( למשל אם כל תת עץ ימין גדולים מכל תת עץ שמאל ) ויכול גם להיות באחד העלים ( אם חצי הערכים הקטנים ביותר נמצאים בעלים ).
14
שאלה + תשובה 2 האם מערך הממוין בסדר הפוך מייצג ערימה ? תשובה : כן. האיבר במקום ה -i גדול מהאיבר ה -2i+1 ו -2i ( שהם בניו ) לכל i.
15
שאלה 3
16
תשובה 3 ב. חסם עליון : עומק כל הצמתים הוא לכל היותר O(lg n). לכן הסכום הוא O(n lg n). חסם תחתון : עומק כל העלים הוא Ω(lg n) ויש Ω(n) עלים לכן הסכום הוא גם Ω(n lg n).
17
שאלה 4
18
תשובה 4 א. החישוב בדומה לחישוב זמן הריצה של Build-Heap החישוב מופיע במצגת מהשיעור.
19
הסוף
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.