Presentation is loading. Please wait.

Presentation is loading. Please wait.

ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים.

Similar presentations


Presentation on theme: "ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים."— Presentation transcript:

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 הסוף


Download ppt "ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים."

Similar presentations


Ads by Google