תאריך פרסום: 01.01.15 תאריך הגשה: 15.01.15 מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש להגיש בזוגות. -העבודה חייבת להיות מוקלדת. -הקובץ חייב להיות בפורמט.PDF נושאים: -הגשת הקובץ למערכת ההגשה. -שאלות לגבי העבודה יש להעלות בפורום של הקורס או בשעות קבלה של המרצה\המתרגל האחראיים על העבודה. Heap- -מיונים -עץ B -הפמן שאלה 1:)15 נק'( נתון עץ B עם פרמטר t, בגובה h )כלומר יש בעץ 1+h רמות( עם n מפתחות. מצאו חסם עליון על n )חסם רגיל, לא אסימפטוטי, פונקציה של t ו- h ( הדוק ככל הניתן, הראו את החישובים ונמקו. )10 נק'( נתון עץ B עם פרמטר t, בן 2 רמות )כלומר בני השורש הם עלים(. בכל צומת בעץ יש 1-t איברים )בשורש ובעלים(. מה המס' המינימלי של פעולות הכנסה שיש לבצע עד שגובה העץ יגדל ב- 1? θ(1).1 θ(t).2 θ(t 2 ).3 θ(t 3 ).4 אף תשובה לא נכונה 5. נמקו )5 נק'(
שאלה 2: )15 נק( השיטה Build-Max-Heap שלמדתם בכתה, יכולה להיות ממומשת גם בדרך אחרת ע"י שימוש בMax-Heap-Insert. נתונה השיטה הבאה:: BUILD-MAX-HEAP-BY-INSERTION(A) 1. heap-size[a] 1 2. for i 2 to length[a] 3. do MAX-HEAP-INSERT(A,A[i]) כלומר, בכל שלב באיטרציה, מכניסים איבר לערימה מקסימום תקינה שמיוצגת ע"י התאים A[1..i-1] בהינתן מערך כלשהו A של מספרים, האם השיטות Build-Max-Heap(A) ו-( Build-Max-Heap-By-Insertion(A יבנו ערימות מקסימום זהות? אם כן הוכיחו, אחרת ספקו דוגמה נגדית.) 5 נק'( הראו כי במקרה הגרוע Build-Max-Heap-By-Insertion תרוץ בזמן O(nlogn) )בבניית ערימה בת n איברים(.) 10 נק'( שאלה )20 3 נק'( נתונה קבוצה S של n מספרים ממשיים ונתון חציון של המספרים בקבוצה. תכנן מבנה נתונים לאחסון S התומך בפעולות הבאות: אתחול מבנה ב-( O(n. Init() 1. 2. Insert(x) להכניס מספר חדש למבנה )אין צורך לבדוק אם המספר נמצא במבנה( ב-( n.o(log החזרת ערך חציון נוכחי ב-( O(1. Median() 3. 4. Delete-Median() מחיקה חציון נוכחי מהמבנה ב-( n.o(log )אם מס' האיברים זוגי צריך למחוק את שני האיברים האמצעיים( חציון הוא האיבר שמספר האיברים הגדולים או ששווים לו שווה למספר האיברים שקטנים או שווים לו.
אם בקבוצה יש מספר אי זוגי של איברים, אז החציון שווה לערכו של האיבר האמצעי בקבוצה כאשר הערכים מסודרים בסדר עולה. כאשר בסדרה יש מספר זוגי של איברים, מקובל להתייחס לממוצע של שני האיברים שבאמצע הקבוצה )כאשר הערכים מסודרים בסדר עולה ) כאל החציון. לדוגמה: לקבוצה:,35,34,11,7,4,2,2 החציון הוא.7 עליכם לעמוד בזמנים בכל אחת מהפעולות. { a, b, c, d, e} שאלה )10 4 נק'( נתון קובץ שמכיל תווים מתוך הא"ב עם שכיחויות:. f ( a) תזכורת: קוד הופמן הנלמד בכיתה Huffman(C) n = C Q = priority queue of C for (i = 1 to n 1) do allocate a new node z z.left = x = ExtractMin(Q( z.right = y = ExtractMin(Q( z.freq = x.freq + y.freq insert(q, z( return ExtractMin(Q(
א( בונים קוד הופמן לקידוד הקובץ. ידוע שהאות e קיבלה את מילת הקוד 0000. הוכיחו שבמקרה זה העץ שנבנה במהלך מציאת קוד הופמן חייב להיראות כך: )4 נק'( c b a e d ב( תנו דוגמה לערכים של כך ש: אשר תביא ליצירת העץ המופיע בסעיף )2 f ( a), f ( b), f ( c), f ( d), f ( e) f ( a) נק'( ג( אילו אילוצים נוספים על השכיחויות חייבים להתקיים )כלומר, אי-שיוויונים בין שכיחויות וסכומים של שכיחויות( כך שביחד עם אי השיוויונים (a, f ( ייצרו העץ המתואר בסעיף א, והוא יהיה העץ היחיד האפשרי להרכבה מהשכיחויות הנ"ל? )ללא ההנחה כי e קיבלה את הקידוד 0000( נמקו את תשובתכם. )4 נק'( שאלה )20 5 נק'( נתון מערך A המכיל n מספרים שלמים בתחום [k..1], כאשר k שלם חיובי. יש לקבוע האם קיימים אינדקסים שונים i ו- j כך ש-.A[i] + A[j] = k בהנחה שלא ניתן לשנות את A, הציעו אלגוריתם לפתרון הבעיה בהתאם להגבלות בכל סעיף. זמן הריצה של האלגוריתם הוא ) 2,O(n מותר להשתמש ב-( O(1 נוסף. )5 נק'( זיכרון ג. זמן הריצה של האלגוריתם הוא logn),o(n מותר להשתמש ב-( O(n זיכרון נוסף.) 5 נק'( בהנחה ש k=θ(n) זמן הריצה של האלגוריתם הוא,O(n) מותר להשתמש ב-( O(k זיכרון נוסף. )10 נק'(
שאלה )20 6 נק'( מוצע לשכלל את bucket sort למיון רקורסיבי כדלהלן: בהינתן n מפתחות, מצא את תחום ערכי המפתחות, חלק את התחום ל- k בו יותר מ- bucket חלקים שווים, פזר מפתחות ובמידה ויש n מפתחות )k ניתן כפרמטר,,)k<n חלק את תחום ה- bucket הזה למספר המפתחות ב- bucket הזה בצורה רקורסיבית. בסעיפים הבאים ניתן להניח שכל המפתחות שלמים ואי שליליים. מהו זמן המיון המקסימלי בהנחה שכל המפתחות שונים זה מזה? נמקו )5 נק'( מהו זמן המיון הממוצע בהנחה שכל המפתחות שונים זה מזה, עבור קלט רנדומלי כלשהו? )5 נק'( ג. הצע שינוי למפתחות למקרה שהמפתחות יכולים להיות זהים, כך שהאלגוריתם ללא שינוי יוכל לשמש למיון המפתחות וסיבוכיות האלגוריתם לא תשתנה, נמקו.) 10 נק'(