Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

יסודות מבני נתונים תרגול 12: חזרה למבחן.

Lignende præsentationer


Præsentationer af emnet: "יסודות מבני נתונים תרגול 12: חזרה למבחן."— Præsentationens transcript:

1 יסודות מבני נתונים תרגול 12: חזרה למבחן

2 25 27 46

3

4 א. 0 ב. 1 ג. 2 ד. תשובות ב ו-ג אפשריות ה. אף מהתשובות אינה נכונה א. 0 ב. 1 ג. 2 ד. תשובות ב ו-ג אפשריות ה. אף מהתשובות אינה נכונה

5 א. עץ AVL בזמן ϴ(n log n), וערימת מינימום בזמן O(n log n)
ב. עץ AVL בזמן ϴ(n log n), וערימת מינימום בזמן ϴ(n) ג. עץ AVL בזמן ϴ(n), וערימת מינימום בזמן O(log n) ד. עץ AVL בזמן ϴ(n), וערימת מינימום בזמן ϴ(n) ה. אף מהתשובות אינה נכונה א. עץ AVL בזמן ϴ(n log n), וערימת מינימום בזמן O(n log n) ב. עץ AVL בזמן ϴ(n log n), וערימת מינימום בזמן ϴ(n) ג. עץ AVL בזמן ϴ(n), וערימת מינימום בזמן O(log n) ד. עץ AVL בזמן ϴ(n), וערימת מינימום בזמן ϴ(n) ה. אף מהתשובות אינה נכונה

6 התוצאה המתקבלת בהרצת BFS על גרף לא מכוון G הינה:
שאלה 2 (20 נק') בכל אחד מהסעיפים הבאים, הקיפו בעיגול את האפשרות הנכונה ביותר. התוצאה המתקבלת בהרצת BFS על גרף לא מכוון G הינה: עץ רוחב בינארי מאוזן, ז"א הפרש הגבהים של הבן השמאלי והבן הימני של כל קדקוד הוא לכל היותר 1. עץ רוחב מאוזן כמו שמתואר בסעיף א, אבל לא בהכרח בינארי. אוסף של עצים שלא ניתן לטעון דבר לגבי היותם מאוזנים ולגבי מספר הבנים המרבי של כל קדקוד בהם. עץ יחיד שלא ניתן לטעון דבר לגבי איזונו ומספר הבנים המרבי של כל קדקוד בו. אף מהתשובות הנ"ל אינה נכונה 2. נתון גרף לא מכוון G. לאחר הרצת האלגוריתמים DFS ו BFS על G מה המשפט הנכון ביותר. תוצאת סריקת DFS תהיה זהה לתוצאת סריקת BFS אם ורק אם הגרף מורכב מקדקוד יחיד. תוצאת סריקת DFS תהיה זהה לתוצאת סריקת BFS אם ורק אם הגרף הוא שרשרת יחידה. תוצאת סריקת DFS תהיה זהה לתוצאת סריקת BFS אם ורק אם הגרף הוא שרשרת יחידה או מעגל יחיד אף מהתשובות אינה נכונה (תשובות א,ב,ו ג לא נכונות. לדוגמא, גרף בצורה של snow flake נותן תוצאה זהה גם בDFS וגם ב BFS)

7 ניתן לשחזר את G מהאנליזה משותפת של עצי סריקת DFS ו BFS
שאלה 2 (20 נק') בכל אחד מהסעיפים הבאים, הקף בעיגול את האפשרות הנכונה ביותר.    נתונים שני עצים שהתקבלו מהרצת אלגוריתמים DFS ו BFS על גרף לא מכוון G, לאחר הרצת האלגוריתמים הגרף G נמחק, איזו מהטענות הבאות נכונה? ניתן לשחזר את G מהאנליזה משותפת של עצי סריקת DFS ו BFS ניתן לשחזר את G מהאנליזה משותפת של עצי סריקת DFS ו BFS אם ורק אם לכל קדקוד ב-G יש לכל היותר 3 שכנים. אם G גרף קשיר וחסר מעגלים ניתן לשחזר את G. תשובות ב ו-ג נכונות. אף תשובה אינה נכונה. (תשובה ב לא נכונה. למשל נקח גרף בעל 4 קדקדים שמחוברים בצורת מלבן, ובנוסף יש צלע שמחברת שני קדקדים באלכסון. אז הדרגה של כל קדקד היא לכל היותר 3, ולא ניתן לשחזר את צלע האלכסון מהרצה של BFS ו DFS שמתחיל מקדקד שאיננו משתתף בחיבור באלכסון.)

8 שאלה 3 (15 נק'):

9 שאלה 3 (15 נק'): פתרון: נעבור על העץ הנתון בעזרת inorder (או ע"י כל סריקה אחרת של עץ שעובדת בזמן לינארי) ונוסיף לכל קדקד שדה "level", ונאסוף את הקדקדים למערך. מכיוון ש m הוא מספר רמות בעץ, אז ערכו של השדה "level" בין 1 לבין n. נמיין תחילה את המערך לפי מפתחות של קדקדים, ופעם שנייה לפי ערך השדה "level". בשני המיונים נשתמש במיון מנייה. זמן ריצה של מיון לפי מפתחות הוא: O(n+k)=O(n+10n)=O(n) זמן ריצה לפי השדה "level" הוא: O(n+k)=O(n+n)=O(n) כלומר, בסה"כ האלגוריתם רץ בזמן O(n). מכיוון שהאלגוריתם מיון מנייה הינו יציב, הוא ישמור על המיון לפי המפתחות בין האיברים של אותה רמה. לכן, בסוף מקבלים במערך כל הרמות , מרמת השורש לרמת העלים, כאשר כל רמה ממויינת לפי מפתחות. מה שנשאר לעשות זה להדפיס את המערך.

10

11 Question 5 דוגמא: MinMax() = min{max(S1),max(S2),
max(S3)} = min{7,5,8} = 5 GlobalMax() = max{max(S1),max(S2), max(S3)} = max{7,5,8} = 8

12 Question 5 מותר להחזיק מספר קבוע של עותקים של אותו איבר. S2 S3 S1 Tsets m קבוצות, n מפתחות בקבוצה Insert(i,k) בזמן O(log n + log m) נחזיק אינדקסים של קבוצות בעץAVL Tsets כל צומת ב Tsets יצביע על הקבוצה שלו נחזיק כל קבוצה בעץ AVL נפרד TSi 4 7 2 TS1 1 6 8 3 TS2 5 TS3

13 Question 5 √ Tsets TS1 TS2 TS3 m קבוצות, n מפתחות בקבוצה
Delete(i,k) בזמן O(log n + log m) S2 S3 S1 Tsets TS1 TS2 TS3 4 6 5 2 7 3 8 1

14 Question 5 Tsets TS1 TS2 TS3 MinMax() בזמן O(1)
נחזיק משתנה עזר MMax עבור הערך העדכני של MinMax() Tsets MMax = 5 S2 כמה זמן יקח לנו לעדכן את הערך MMax ? S1 S3 O(m*log n) כי נצטרך לחשב את MinMax() מחדש. TS1 TS2 TS3 4 6 5 2 7 3 8 6 1

15 Question 5 √ Tmax MinMax() בזמן O(1)
MMax = 5 MinMax() בזמן O(1) נחזיק משתנה עזר MMax עבור הערך העדכני של MinMax() כמה זמן יקח לנו לעדכן את הערך MMax ? O(m*log n) כי נצטרך לחשב את MinMax() מחדש. נחזיק עץ AVL נוסף Tmax המכיל מקסימום של כל עץ TSi. ברגע שמכניסים איבר חדש x לעץ TSi, בודקים האם x גדול מהמקסימום (O(log n)), ואם כן, אז מוציאים מ Tmax את המקסימום הישן של TSi ומכניסים את x במקומו ל Tmax (O(log m)). מחפשים את המינימום החדש של Tmax (O(log m)) ומעדכנים את MMax במידת הצורך. 7 8 5 Tmax תוספת של O(log n + log m) זמן להכנסה

16 Question 5 √ Tmax GlobalMax() בזמן O(1)
MMax = 5 GMax = 8 GlobalMax() בזמן O(1) נחזיק משתנה עזר GMax עבור הערך העדכני של GlobalMax() כמה זמן יקח לנו לעדכן את הערך GMax ? ברגע שמכניסים איבר חדש x לעץ TSi, בודקים האם x גדול מהמקסימום (O(log n)), ואם כן, אז מוציאים מ TSi את המקסימום הישן ומכניסים את המקסימום העדכני של TSi(O(log m)). מחפשים את המקסימום החדש של Tmax (O(log m)) ומעדכנים את GMax במידת הצורך. ברגע שמכניסים איבר חדש x לעץ TSi, בודקים האם x גדול מהמקסימום (O(log n)), ואם כן, אז מוציאים מ Tmax את המקסימום הישן של TSi ומכניסים את x במקומו ל Tmax (O(log m)). מחפשים את המקסימום החדש של Tmax (O(log m)) ומעדכנים את GMax במידת הצורך. Tmax 7 תוספת של O(log n + log m) זמן להכנסה 5 8

17 Question 5

18 Question 5

19 Question 5

20 שני עכברים מיקי ומיני קיבלו בשעורי בית לפתור שאלה הבאה: "הציעו אלגוריתם יעיל לבניית ערימת מינימום ממערך של מספרים כאשר אם קוראים את המערך מסוף להתחלה הוא מהווה ערימת מינימום תקינה." מיני אמרה: "העובדה שהמערך ההפוך הוא ערימת מינימום לא עוזרת לנו. לדעתי אין ברירה אלא לבנות את הערימה מחדש בזמן O(n). " מיקי אמר: "בטח שזה עוזר, הרי זאת בכל זאת ערימה, פשוט בסדר הפוך! הינה האלגוריתם שאני מציע: לא נתייחס לאינדקסים האמיתיים של המספרים בערימה, אלא על כל אינדקס אמיתי i נחשב virtual index (i) = heap_size +1-i, ואילו יהיו אינדקסים שנשתמש בהם לערימת המינימום שלנו. לדוגמא:" מיני אמרה: "אוקיי. אבל מה אם נרצה להכניס איבר חדש לערימה?" מיקי אמר:" אין בעיה. נכניס אותו לסוף המערך, ואז בעצם הוא הופך להיות לשורש הערימה. כעת , נעדכן את המשתנה heap_size++ ונבצע heapify_down לאיבר החדש שהכנסנו כדי לתקן את הערימה, ושוב פעם קיבלנו ערימת מינימום תקינה (הפוכה). לדוגמא:" האם הפתרון של מיקי עובד ? אם כן, הסבירו למה. אם לא, הביאו דוגמא נגדית.

21 תשובה: הפתרון של מיקי לא עובד
תשובה: הפתרון של מיקי לא עובד. תשימו לב שבערימה למטה הפתרון של מיקי לא עובד


Download ppt "יסודות מבני נתונים תרגול 12: חזרה למבחן."

Lignende præsentationer


Annoncer fra Google