Professional Documents
Culture Documents
מצגת 5 - סיבוכיות
מצגת 5 - סיבוכיות
1
נכתב ע"י ניצן דולינסקי Ⓒ
אין לשכפל /להעתיק ללא אישור
א .מבוא לסיבוכיות
ניתוח סיבוכיות אלגוריתם עונה על השאלה כמה משאבים ,כגון שטח או זמן,
אלגוריתם צורך.
ככל שהאלגוריתם לוקח פחות זמן ,כך יותר יעיל.
לא אכפת לנו מהפרטים של זמן הריצה ,אלא לאופן גידול ביחס לקלט.
2
נכתב ע"י ניצן דולינסקי Ⓒ
אין לשכפל /להעתיק ללא אישור
ב .סיבוכיות זמן קבוע )O(1
לא משנה מה ערך ,nלקוד זו לוקח זמן קבוע להפעל -לא תלוי בגודל של .n
דוגמה (קלט הוא :)n
3
נכתב ע"י ניצן דולינסקי Ⓒ
אין לשכפל /להעתיק ללא אישור
סיבוכיות זמן לינארי O (n) - ג.
לולאה פועלת nפעמים -האלגוריתם יגדל באופן לינארי עם גודל הקלט שלו.
אנו מעדיפים זמן ריצה של nמ ,1000n -אך שניהם עדיין אלגוריתמים -הם
גדלים ישירות ביחס לגודל הקלט שלהם.
דוגמה:
4
נכתב ע"י ניצן דולינסקי Ⓒ
אין לשכפל /להעתיק ללא אישור
מה מספר הפעולות המבוצעות ומה הסיבוכיות?
5
נכתב ע"י ניצן דולינסקי Ⓒ
אין לשכפל /להעתיק ללא אישור
סיבוכיות פולינומיאלית\ריבועית (O (nk ד.
6
נכתב ע"י ניצן דולינסקי Ⓒ
אין לשכפל /להעתיק ללא אישור
סכום טור המספרים הטבעיים
טור המספרים הטבעיים הוא תוצאת החיבור של סדרת המספרים ,מ 1-ועד .n
]1+2+3+…+n[
דוגמה:
;int sum=0
)for (int i = 1; i <= n; i++
{
;sum = 0
)for (int j = 1; j <= i; j++
;sum += j
}
סיבוכיותO(n^2) :
7
נכתב ע"י ניצן דולינסקי Ⓒ
אין לשכפל /להעתיק ללא אישור
ה .סיבוכיות לוגוריתמית )O(log n
לדוגמה ,נתון:
חיפוש בינארי:
8
נכתב ע"י ניצן דולינסקי Ⓒ
אין לשכפל /להעתיק ללא אישור
סיבוכיות לוגוריתמית )O(log n
סיבוכיות זמן לוגריתמית יותר מסובכת לדמיין.
חיפוש בינארי מבוסס על כך שבכל צעד מקטינים את תחום החיפוש בחצי.
נחשב כמה פעמים יש לחלק ( Kפעמים).
במקרה הגרוע ,נחלק ונקטין את המערך עד אשר גודלו יהיה .1
ה log-היא בבסיס .2
סיבוכיות הזמן הזו היא שיפור ניכר מסיבוכיות הזמן ) O (Nשל חיפוש לינארי.
דוגמה :1
דוגמה :2
11
נכתב ע"י ניצן דולינסקי Ⓒ
אין לשכפל /להעתיק ללא אישור
סיכום סדרי גודל Oגדולה ו.
11
נכתב ע"י ניצן דולינסקי Ⓒ
אין לשכפל /להעתיק ללא אישור