שאלת מבחן באלגוריתמים - האוניברסיטה הפתוחה 2021 - סיבוכיות
השאלה עוסקת במימושים שונים לתור-קדימויות עם מפתחות, במסגרת הפעלת האלגוריתם של Dijkstra או של Prim. שני מימושים: רשימה דו-כיוונית לא ממוינת, ערימה-בינארית, וערימת-פיבונאצ'י (שזמני-הריצה שלה amortized). לכל אורך התשובה השמיטו את הסימנים האסימפטוטיים . נסמן , .
(א) השלימו את זמני-הריצה של כל פעולה בכל מימוש.
(ב) רשמו את זמן-הריצה הכולל של Dijkstra/Prim בכל מימוש (בניית התור שליפת-מינימום הקטנת-מפתח), וקבעו לאילו צפיפויות עדיף כל מימוש.
(א) השלימו את זמני-הריצה של כל פעולה בכל מימוש.
(ב) רשמו את זמן-הריצה הכולל של Dijkstra/Prim בכל מימוש (בניית התור שליפת-מינימום הקטנת-מפתח), וקבעו לאילו צפיפויות עדיף כל מימוש.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 77 · 2021 · סמסטר א
★★★★★
סיבוכיותניתוח אלגוריתמיםדייקסטרהגרפים
הזמן הכולל הוא . הציבו את ערכי הטבלה, והשוו מול מול לפי .
(א) טבלת זמני-הריצה (לכל פעולה):
(ערימת-פיבונאצ'י: שליפת-מינימום ו-decrease-key הם זמנים amortized.)
(ב) זמן ריצה כולל :
מתי כל מימוש עדיף:
| פעולה | רשימה לא ממוינת | ערימה בינארית | ערימת פיבונאצ'י |
|---|---|---|---|
| בניית התור | |||
| שליפת מינימום | |||
| הקטנת מפתח |
(ערימת-פיבונאצ'י: שליפת-מינימום ו-decrease-key הם זמנים amortized.)
(ב) זמן ריצה כולל :
- רשימה: .
- ערימה-בינארית: (עבור ).
- ערימת-פיבונאצ'י: .
מתי כל מימוש עדיף:
- רשימה מול ערימה-בינארית: רשימה () עדיפה על בינארית () כאשר , כלומר בגרפים צפופים מאוד: (וכזכור ). לגרפים דלילים-בינוניים הבינארית עדיפה.
- ערימת-פיבונאצ'י מול רשימה: פיבונאצ'י () עדיפה לכל צפיפות, שכן תמיד וגם , ולכן .
- (בונוס — פיבונאצ'י מול בינארית: פיבונאצ'י לעולם אינה גרועה יותר אסימפטוטית, ועדיפה ממש כאשר .)