שאלת מבחן במבני נתונים - אוניברסיטת בר-אילן 2013 - טבלאות גיבוב

הצע/י מבני נתונים עבור איברים בשטח , כך שניתן להוסיף, למחוק ולחפש איבר בזמן בממוצע, ובזמן במקרה הגרוע. יש לנמק מדוע מבני הנתונים אכן עומדים בדרישות.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
אוניברסיטת בר-אילןמועד ב2013סמסטר ב
טבלאות גיבובעץ חיפוש בינאריעצי AVLסיבוכיות זמןסיבוכיות מקוםפונקציית גיבוב
חשבו על שילוב של שני מבני נתונים: אחד שמספק סיבוכיות ממוצעת של ואחר שמבטיח סיבוכיות של במקרה הגרוע לפעולות הנדרשות.
נשתמש בטבלת גיבוב (Hash Table) בגודל , כאשר כל תא בטבלה (bucket) אינו רשימה מקושרת, אלא עץ חיפוש בינארי מאוזן (למשל, עץ AVL או עץ אדום-שחור).

ניתוח המבנה המוצע:


1. סיבוכיות מקום: טבלת הגיבוב עצמה דורשת שטח של
. בנוסף, כל אחד מ- האיברים מאוחסן בדיוק באחד מהעצים המאוזנים. כל צומת בעץ דורש שטח של , ולכן כלל העצים יחד דורשים שטח של . סך כל המקום הנדרש הוא , כנדרש.

2. סיבוכיות זמן (חיפוש, הוספה, מחיקה):
פעולה כלשהי (חיפוש, הוספה או מחיקה) עבור איבר
מתבצעת בשני שלבים:
א. חישוב ערך הגיבוב
כדי למצוא את התא המתאים בטבלה. שלב זה לוקח .
ב. ביצוע הפעולה הנדרשת על העץ המאוזן שנמצא בתא
.

* במקרה הממוצע: בהנחה של פונקציית גיבוב טובה (למשל, גיבוב אחיד פשוט), אנו מצפים שהאיברים יתפזרו באופן אחיד בין התאים בטבלה. אם יש
איברים ו- תאים, גודלו המצופה של כל עץ מאוזן הוא . פעולה על עץ מאוזן בגודל קבוע לוקחת זמן של . לכן, סיבוכיות הזמן הממוצעת הכוללת היא .

* במקרה הגרוע: המקרה הגרוע ביותר מתרחש כאשר כל
האיברים מתנגשים וממופים לאותו תא בטבלת הגיבוב. במצב זה, העץ המאוזן באותו תא יכיל את כל האיברים. מכיוון שהעץ מאוזן, פעולות חיפוש, הוספה ומחיקה עליו לוקחות זמן של . לכן, סיבוכיות הזמן הכוללת במקרה הגרוע היא .

לסיכום, מבנה הנתונים המוצע עומד בכל הדרישות של השאלה.