אוניברסיטת ת"א סמסטר א' ,תשע"ד תרגיל בית 2במבני נתונים תזכורת :על כל התשובות להיות מנומקות. שאלה 1 נתון לנו מבנה נתונים ,ובו פעולה בודדת – )( .funcנתון לנו ,שזמן הריצה amortizedשל פעולת funcהוא ).O(1 הראו חסם עליון הדוק ככל שתוכלו לזמן הריצה של פעולת funcבמקרה הגרוע ביותר ,כפונקציה של מספר הקריאות לפעולה עד כה. שאלה 2 בהרצאה ראינו מימוש של מחסנית בתוך מערך עם הכפלות ,שמאפשר זמן amortizedקבוע לפעולה. א .נשנה את המבנה ,כך שכשהמערך מתמלא נכפיל את גודלו פי ( ,)α+1במקום להכפיל פי .2הראו שזמן הריצה . amortizedלפעולה הוא כעת ב .נשנה את המבנה ,כך שכשהמערך מתמלא ,נקצה מערך גדול ב( β-קבוע) תאים ,ונעתיק אליו את תוכן המערך. כלומר ,במקום להגדיל כפלית פי ,2אנחנו מגדילים חיבורית ב .β -הראו ,שזמן הריצה amortizedלפעולה הוא כמו זמן הריצה הגרוע ביותר לפעולה .במילים אחרות ,הראו שסדרה של nפעולות דורשת ) Θ(n2זמן. שאלה 3 .1בכדי לשפר את יעילות המונה נשתמש בספרות ( 0, +1, -1במקום רק ב 0-ו .)1-ערכו של מספר המיוצג ע"י מוגדר להיות: סדרת הספרות למשל 1 0 -1הינו ייצוג של . פעולת incrementשל מספר בייצוג כזה מתבצעת באופן דומה לביצועה במערכת המספרים הרגילה. מוסיפים 1לספרה הימנית ביותר .אם ערכה הפך ל ,2-הוא משתנה ל 0-וגוררים את העודף לספרה הבאה משמאל Decrement .מתבצע בצורה דומה :מורידים 1מהספרה הימנית ביותר ,אם ערכה הפך ל,(-2)- הופכים אותו ל ,0-וגוררים את החוסר ) (-1לספרה שמשאל .דוגמא :המספר 1 0 -1פחות ,1נקבל .1 -1 0 כעת נוסיף לו 1ונקבל .1 -1 1שימו-לב שקיבלנו שתי צורות שונות לייצוג של ,1 0 -1 :3ו.1 -1 1 - נגדיר את עלות הפעולה להיות מספר הספרות המשתנות כאשר מבצעים את הפעולה .הוכיחו ,כי בייצוג שכזה העלות של סדרה של nפעולות incrementו decrement-כאשר מתחילים ממונה שערכו 0היא ).O(n שאלה 4 .1נתונה הפעולה הבאה . opמתחילים עם i=0ומפעילים את n opפעמים ,מה היא העלות amortized לפעולת opבסדרה? )(op i=i+1 if (i = 2k for an integer k) then for j = 0 to 2*i do some work in constant time end for end if
© Copyright 2024