אוניברסיטת ת"א סמסטר א' ,תשע"ד פתרון תרגיל בית 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כדי לשלם עליה.
© Copyright 2024