1 / 9

תרגול 7

תרגול 7. עצים, כללי. שאלה 1. נתון אלגוריתם A המקבל מערך ומחזיר את איבר אשר גדול לפחות כמו איברים וקטן מלפחות איברים במערך. . הנח שאלגוריתם A עובד בזמן ליניארי, הצג אלגוריתם המתבסס על אלג' A אשר מוצא את האיבר ה- k בגודלו במערך בזמן ריצה ליניארי.

glynis
Download Presentation

תרגול 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. תרגול 7 עצים, כללי

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

  3. שאלה 2 רוצים לממש rangeSort(a,b) אשר מחזירה את k המספרים בתחום בין a ל b מצא את זמן הריצה עבור מבני הנתונים הבאים: א. מערך ממויין: מציאת האיבר a והדפסת k האיברים ב. עץ AVL יש למצא את האיברים a ו b ולהדפיס את האיברים ביניהם ג. Linear probing -Hash table : הדרך היחידה לפתור את השאלה היא לעבור על כל המערך ד. Chining -Hash table : יש לעבור על כל הרשימות בתחום a-b

  4. שאלה 3 (מועד א 2010) תאר מבנה נתונים שתומך בפעולות הבאות: • הכנסת מספר ממשי בזמןO(logn) • מחיקת איבר מתוך מבנה הנתונים (במידה וקיים) בזמןO(logn) • הדפסת ההפרש בין סכום המספרים שגדולים ממספר נתון x לבין סכום המספרים שקטנים מ x בזמן O(logn) פתרון • נבנה עץ AVL כאשר כל קודקוד יחזיק שדה של סכום האיברים בתת העץ שלו. • שדה זה יעודכן בזמן הכנסה\מחיקה של כל איבר (לא משפיע על חסם הסיבוכיות) • על מנת לחשב את ההפרש עבור x כלשהו נחשב את הערכים הבאים: A- הסכום הכולל של האיברים בעץ (שדה הסכום בשורש) B- סכום האיברים שקטנים מ x C- סכום האיברים ששווים ל x נחזיר: A-2B-C

  5. A=124 B=45-18=27 C=9+9=18 res=124-54-18=52 X=9 10 124 7 45 15 69 5 20 9 18 13 38 16 16 5 9 6 6 9 9 11 11 14 14 4 4

  6. שאלה 4 בהינתן ,Sקבוצה של n מספרים ואת הערך z מצא המקיימים בזמן ממוצע של פתרון נכניס את האיברים ל hash table עבור כל איבר נחפש בטבלה את

  7. שאלה 5 • נתון preorder וpostorder של עץ. הצג אלגוריתם הבודק אםהוא אב קדמון של פתרון • preorder- מדפיס קודם את האב ואז את הבנים של אותו תת עץ • postorder-מדפיס קודם את הבנים ואז את האב • לכן ע"מ ש יהיה אב קדמון של הוא צריך להופיע לפני בהדפסת ה-preorder ואחריו בהדפסת ה- postorder • אם לא מקיימים "קשר משפחתי" הם יופיעו באותו סדר

  8. שאלה 6 בהינתן מערך בעל n איברים. בנה מבנה נתונים אשר עלות בניותו היא ואשר קובע האם קיים רוב בתחום כאשר בסיבוכיות פתרון נבנה עץ תחרות של רוב (מהעלים לשורש) בהתבסס על העובדה שרוב חייב להיות רוב אצל אחד הבנים. עלות הבנייה נעבור על רצף המערכים הגדולים ביותר אשר איחוד שלהם יוצר את התחום המועמדים להיות רוב בתחום הם רק ערכי הרוב במערכים אלו סה"כ מועמדים

  9. שאלה 6המשך בנוסף נבנה עץ AVL עבור הערכים השונים. כל איבר בעץ יחזיק מצביע לעץ AVL נוסף הממוין ע"פ אינדקס ההופעה של אותו איבר. כל איבר בעץ האינדקסים יחזיק את סכום האיברים עבור תת העץ השמאלי והימני עלות הבנייה- עבור כל אחד מהמועדים נעבור על העץ ונחשב כמה פעמים הוא מופיע בתחום סיבוכיות: 1 4 12 7 3 9 14 9 2 5 16 6 8

More Related