במבני נתונים 2 תרגיל בית פתרון

‫אוניברסיטת ת"א‬
‫סמסטר א'‪ ,‬תשע"ד‬
‫פתרון תרגיל בית ‪ 2‬במבני נתונים‬
‫שאלה ‪1‬‬
‫נראה חסם עליון )‪ n( O(n‬מספר הקריאות לפונקציה עד כה)‪ .‬נניח בשלילה שזה לא החסם העליון‪ ,‬כלומר זמן הריצה‬
‫‪,ω‬‬
‫של פעולת ‪ FUNC‬במקרה הגרוע ביותר הוא ‪ . ω‬כעת כל סדרה שמכילה את הפעולה הנ"ל תעלה לפחות‬
‫‪ ω‬בסתירה‬
‫וכשנחלק ב‪( n-‬לפי הגדרת זמן ריצה ‪ AMOR‬עם סוג פעולה אחד) נקבל שזמן הריצה ‪ AMOR‬הוא‬
‫לנתון שזמן ריצה ‪ AMOR‬הוא )‪ .O(1‬לכן זמן הריצה הגרוע ביותר הוא )‪ O(n‬לפונקציה הנ"ל‪.‬‬
‫שאלה ‪2‬‬
‫א‪ .‬פונקציית הפוטנציאל תהיה (‪ t‬מספר האיברים במבנה‪ N ,‬גודל המערך)‪:‬‬
‫∅‬
‫עבור הכנסה זולה ה‪ actual-‬קבוע ונקבל עוד ‪ (1+α)/α‬מההפרש בפוטנציאל‪.‬‬
‫עבור הכנסה יקרה ה‪ actual-‬הוא ‪( N‬העתקת ‪ N‬איברים)‪ ,‬וההפרש בפוטנציאל הוא ‪.(1+α)/α-N‬‬
‫פונקציית הפוטנציאל תמיד אי‪-‬שלילית‪.‬‬
‫ב‪ .‬אם המערך גדל בבטא בכל פעם‪ ,‬אז כל ‪ N/β‬הכנסות יש הכנסה יקרה שעולה זמן לינארי במספר האיברים‪ .‬מכאן‬
‫שזמן הריצה ייצא ‪.N2/β‬‬
‫שאלה ‪3‬‬
‫נגדיר פונקציית פוטנציאל להיות שווה למס' ה‪-1-‬ים וה‪-(-1)-‬ים‪ .‬קל לראות שבכל פעולה‪ ,‬כל הביטים‬
‫שמשתנים ישתנו ל‪ ,0-‬פרט אולי לביט אחד‪ .‬לכן בכל פעולה‪ ,‬השינוי בפוטנציאל "משלם" על שינוי כל הביטים‬
‫שמשתנים ל‪ ,0-‬ונשאר רק לשלם על עוד שינוי ביט אחד‪ ,‬וההשפעה שלו על הפוטנציאל‪ ,‬וזה שווה ל‪.O(1)-‬‬
‫שאלה ‪4‬‬
‫זמן הריצה אמורטייזד הוא )‪ O(1‬לפעולה‪ .‬זמן הריצה לפעולה בודדת הוא קבוע‪ ,‬פרט למקרה ש‪ i-‬הוא חזקה‬
‫של שתיים‪ ,‬ואז זמן הריצה הוא לוגריתמי‪ .‬קל להראות שיש מספיק פעולות "זולות" (‪ i‬הוא לא חזקה של‬
‫שתיים) לפני כל פעולה "יקרה" (‪ i‬הוא חזקה של ‪ )2‬כדי לשלם עליה‪.‬‬