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

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

א( כמה זמן לוקח מציאת האיבר הקטן ביותר? והשני? הסכם/י: מה הסיבוכיות של שיטת מיון זו?


ב( האם יעזור אם, במקום לחזור ולחפש שוב ושוב את האיבר הקטן בכל קבוצה, נמיין את הקבוצות מיד בהתחלה?


ג( כדי לשפר, נחלק את
ל קבוצות בגודל כל אחת. נקבל קבוצה בגודל ולכן גם אותה נחלק ל קבוצות בגודל . נקרא לקבוצת האיברים המינימליים בשם . כמה זמן לוקח מציאת האיבר הקטן ביותר? והשני? הסכם/י: מה הסיבוכיות של שיטת מיון זו?

ד( תאר/י בקצרה הכללה של השיטה של א) (
רמה נוספת אחת) ו ג) ( רמות נוספות) ל רמות נוספות. מה תהיה הסיבוכיות?

ה( מהו הערך הגדול ביותר של
שהוא אפשרי ב ג)? (רמז: חייבים להיות לפחות איברים בכל קבוצה בחלוקה). איזה שיטת מיון מתקבלת עבור זה? הסבר/י.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
אוניברסיטת בר-אילןמועד א2010סמסטר ב
סיבוכיותסיבוכיות זמןמיוןערימות
כדי לחשב את הסיבוכיות הכוללת, חשבו בנפרד את עלות מציאת האיבר הראשון (בניית המבנה) ואת עלות מציאת כל אחד מ- האיברים הבאים (עדכון המבנה).
א. מציאת האיבר הקטן ביותר: התהליך כולל שני שלבים: 1. יצירת קבוצה מהאיברים המינימליים של הקבוצות בגודל 1. מכיוון שהקבוצות בגודל 1, שלב זה לוקח . 2. מציאת המינימום בקבוצה (שהיא למעשה ) על-ידי סריקה לינארית, שלוקחת . סך הכל, מציאת האיבר הראשון לוקחת .
מציאת האיבר השני: לאחר שהאיבר הקטן ביותר נמצא והוסר, אנו חוזרים על התהליך עבור
האיברים הנותרים. יש עדיין קבוצות, אחת מהן ריקה. יצירת קבוצת המינימליים לוקחת שוב , ומציאת המינימום בה לוקחת . סך הכל, גם מציאת האיבר השני לוקחת .
סיבוכיות המיון: כדי למיין את כל המערך, יש לחזור על תהליך מציאת האיבר המינימלי הבא
פעמים. מכיוון שכל איטרציה עולה , הסיבוכיות הכוללת של שיטת המיון היא . זוהי למעשה גרסה של מיון בחירה (Selection Sort).

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

ג. בשיטה המשופרת, אנו בונים מבנה היררכי של שני שלבים.
מציאת האיבר הקטן ביותר (עלות הקמה):

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

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

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



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