שאלת מבחן במבוא למדעי המחשב - הטכניון 2020 - סיבוכיות זמן

שאלה 1 (25 נקודות):

א. (8 נקודות) חשבו את סיבוכיות הזמן והמקום של הפונקציה המוגדרת בקטע הקוד הבא, כפונקציה של . אין צורך לפרט שיקוליכם. חובה לפשט את הביטוי ככל שניתן.



סיבוכיות זמן: ____________ סיבוכיות מקום: ____________

ב. (9 נקודות): חשבו את סיבוכיות הזמן והמקום של הפונקציה המוגדרת בקטע הקוד הבא, כפונקציה של . אין צורך לפרט שיקוליכם. חובה לפשט את הביטוי ככל שניתן.



סיבוכיות זמן: ____________ סיבוכיות מקום: ____________

ג. (8 נקודות): חשבו את סיבוכיות הזמן והמקום של הפונקציה המוגדרת בקטע הקוד הבא, כפונקציה של . אין צורך לפרט שיקוליכם. חובה לפשט את הביטוי ככל שניתן.



סיבוכיות זמן: ____________ סיבוכיות מקום: ____________
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
הטכניוןמועד א2020סמסטר ב
סיבוכיות זמןסיבוכיות מקוםרקורסיהלולאותמעקב אחר קוד
לכל תת-שאלה, יש לקבוע תחילה כמה פעמים הלולאה/רקורסיה מתבצעת כפונקציה של , ולאחר מכן לחשב את עלות כל איטרציה/קריאה בנפרד. שימו לב שתנאי העצירה של הלולאה ב-f1 מגדיר מספר איטרציות שהוא , ולא לוגריתמי.
א. ניתוח f1 ו-g

פונקציה g: מחשבת , כלומר .

לולאת f1: מתחיל ב-1 ומוכפל ב-2 בכל איטרציה. אחרי איטרציות, . תנאי העצירה: , כלומר , כלומר . הלולאה רצה עבור , סה"כ איטרציות.

זמן: בכל איטרציה , קריאה ל- עולה . סך הזמן:



מקום: עומק הרקורסיה של עבור הוא . מכיוון שהקריאות ל- אינן מקביליות, סיבוכיות מקום: .

---

ב. ניתוח f2 ו-g2

g2(n, m): בכל קריאה רקורסיבית: , . אחרי קריאות: , . עצירה כאשר :



עומק הרקורסיה: .

ערך בבסיס הרקורסיה:



הלולאה בבסיס רצה פעמים.

זמן: כל קריאה לא-בסיסית עולה , ויש כאלו; הבסיס עולה :



מקום: עומק מחסנית הרקורסיה הוא , כל מסגרת :

סיבוכיות זמן: , סיבוכיות מקום:

---

ג. ניתוח f3 (לולאות מקוננות)

לולאה חיצונית: מ-0 עד , צעד 3 — איטרציות.

לולאה פנימית: מ- עד , צעד 2. כאשר , הלולאה אינה מתבצעת כלל. לכן תרומה ממשית רק עבור :



מקום: אין רקורסיה, רק משתנים בודדים .

סיבוכיות זמן: , סיבוכיות מקום: