20
יסודות מבני נתונים תרגול2 : סימונים אסימפטוטייםMarina Kogan Sadetsky – 11.2015

םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

יסודות מבני נתונים

סימונים אסימפטוטיים: 2תרגול

Marina Kogan Sadetsky – 11.2015

Page 2: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

, של אלגוריתםסיבוכיות זמן ריצה כאשר מנתחים את

( אטומיות)מספר הפעולות היסודיותסופרים את

.גודל הקלטכתלות ב , שהאלגוריתם מבצע

?מהו גודל הקלט•מספר איברים במערך:מערך•

מספר צמתים בעץ:עץ•

'מספר צמתים וקשתות בגרף וכו:גרף•

, (צמתים300או עץ עם 100מערך בגודל )אנחנו לא מניחים גודל מסוים של קלט •גדול ככל שיהיה, כלשהו( חוקי)מנתחים זמן ריצה לקלט אלא

הארכה אסימפטוטית–א גודל הקלט שואף לאינסוף"ז

ניתוח סיבוכיות הזמן של אלגוריתם

Page 3: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

.הוא זמן ריצה של האלגוריתםf(n)נניח ש

חסם עליון (לכל היותר)

חסם תחתון(לפחות)

חסם הדוק(גם וגם)

ניתוח סיבוכיות הזמן של אלגוריתם

Page 4: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

.הוא זמן ריצה של האלגוריתםf(n)נניח ש

חסם עליון

אסימפטוטי(לכל היותר)

f(n)

n0f(n)=O(g(n))

ניתוח סיבוכיות הזמן של אלגוריתם

Page 5: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

.הוא זמן ריצה של האלגוריתםf(n)=½n2-3nנניח ש : דוגמא

?f(n) = O(n2)האם

n ≥ n0כך שלכל n0וсקיים קבוע האםנבדוק: פתרון

.≥ c ∙ n2½n2-3n0 ≥מתקיים

f(n) ≥ 0

½n2-3n ≥ 0n(½n-3) ≥ 0n ≥ 3 ∙ 2=6 n0 ≥ 6

f(n)=½n2-3ng(n)=n2

ניתוח סיבוכיות הזמן של אלגוריתם

n0ו ½ = cנקח = 6.

0 ≤ ½ ∙ (6)2-3 ∙ 7 ≤ ½ ∙ (6)2 : נבדוק

0 ≤ 0 ≤ 18

∀n≥n0 f(n) ≤ c ∙ g(n)

∀n≥n0 ½n2-3n ≤ c ∙ n2

∀n≥n0 n(½n -c ∙ n-3) ≤ 0∀n≥n0 n(½ -c) ≤ 3(½ -c) ≤ 0½ ≤ c

Page 6: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

.הוא זמן ריצה של האלגוריתםf(n)נניח ש

ניתוח סיבוכיות הזמן של אלגוריתם

חסם תחתון

אמימפטוטי(לפחות)

n0

f(n)

f(n)= (g(n))

cg(n)

Page 7: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

.הוא זמן ריצה של האלגוריתםf(n)=(log n)log nנניח ש : דוגמא

?f(n) = Ω(n3/2)האם

מתקיים n ≥ n0כך שלכל n0וсהאם קיים קבוע נבדוק: פתרוןc ∙ n3/2 ≤ (log n)log n.

∀n≥n0 c ∙ g(n) ≤ f(n)

c ∙ n3/2 = c ∙ (2log n)3/2 = c ∙ (23/2)log n ≈ c ∙ 2.9log n ≤ (log n)log n

ניתוח סיבוכיות הזמן של אלגוריתם

f(n)=(log n)log n

g(n)=n3/2

:ונקבלc=1נקח

2.9 ≤ log n22.9 ≈ 7.1 ≤ n

. n0 =8נקח

0 ≤ 1 ∙ (8)3/2 ≤ ½ ∙ (log 8)log 8 : נבדוק0 ≤ 22.7 ≤ 27

Page 8: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

1שאלה

Solution:

Observe that for n ≥ 4 holds n! > 2n .

(log n)! = (log n) ∙ (log n - 1)! > (log n) ∙ 2log n - 1 =

= (log n) ∙ 2log n /2 = (log n) ∙ n/2 = f`(n)

n! = n∙(n-1)∙(n-2)∙…∙2∙1 > 2 ∙2 ∙… ∙2 = 2n

∀n≥n0 c ∙ g(n) ≤ f`(n)c ∙ n log n ≤ (log n) ∙ n/2

c ≤ ½, n0 = 1

c ∙ g(n) ≤ f`(n) and f`(n) ≤ f(n)

c ∙ g(n) ≤ f(n)

(log n)! = Ω)n log n(

Page 9: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

.הוא זמן ריצה של האלגוריתםf(n)נניח ש

ניתוח סיבוכיות הזמן של אלגוריתם

חסם הדוק

אסימפטוטי(גם וגם)

n0

c1 g(n)f(n)

f(n)= (g(n))

c2 g(n)

Page 10: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

2שאלה

:לדוגמא

n logn + n = (max(n logn, n)) = (n logn)

max(f(n), g(n)) ≤ f(n)+g(n)

let’s take c1=1, n0 ≥ 1

f(n)+g(n)=Ω(max(f(n), g(n)))

f(n)+g(n) ≤ 2 max(f(n), g(n))

let’s take c2=1, n0 ≥ 1

f(n)+g(n)=O(max(f(n), g(n)))

f(n)+g(n) = (max(f(n), g(n)))

Page 11: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

1סעיף 3שאלה

True.

Page 12: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

2סעיף 3שאלה

False. Let's suppose in contradiction that this is true.

Take f(n) = 2n.Then f(n/2) = 2n/2.2n = (2n/2) ∃c1,c2,n0 ∀n ≥ n0 c1∙ 2n/2 ≤ 2n ≤ c2∙ 2n/2

2n = 2n/2 ∙ 2n/2

c1 ≤ 2n/2 ≤ c2

observe that for n > log c2 ∙ 2 holds 2n/2 > c2

2n/2 ≤ c2

Page 13: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

3סעיף 3שאלה

False. Let's suppose in contradiction that this is true.

Take f(n) = 2n , g(n) = n for c > 2 holds 2n ≤ c ∙ n f(n) = O(g(n))

22n= O(2n)

∃c,n0 ∀n ≥ n0 holds 22n ≤ c ∙ 2n

22n = 2n + n = 2n ∙ 2n ≤ c ∙ 2n

2n ≤ c

Page 14: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

4סעיף 3שאלה

True.

f(n) = O(g(n))

∃c,n0 ∀n ≥ n0 holds f(n) ≤ cg(n)

f(n)2 ≤ c2g(n)2

Let’s take c’ = c2 , n’0 = n0 .

f(n)2 = O(g(n)2)

Page 15: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

5סעיף 3שאלה

False. Let's suppose in contradiction that this is true.

Take d(n) = n3 , f(n) = n4 d(n) = O(f(n))

Take e(n) = n2 , g(n) = n5 e(n) = O(g(n))

d(n)/e(n) = O(f(n)/g(n))

n3/n2 = O(n4/n5)

n = O(1/n)

∃c,n0 ∀n ≥ n0 n ≤ c∙ 1/n

n2 ≤ c

Page 16: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

4שאלה

Solution:

Define two indices p & q to beginning and end of array.If sum of two elements A[p] + A[q] == x, return True.If A[p] + A[q] > x q --If A[p] + A[q] < x p++

The number of iterations ≤ n

231918961

p q

231918961

p q

1+23=24 < 25 p++

6+23=29 > 25 q --

231918961

p q6+19=25 == 25 return True

Example: x=25

Page 17: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

4שאלה TwoSum(A,x)

p 0

q n-1

while (p < q)

if (A[p]+A[q] == x)

return “Yes”

else if (A[p]+A[q] < x)

p++

else

q--

return “No”

פעולות c*nלכל היותר א "ז–O(n)זמן ריצה

.מקרה הגרוע ביותרא מדובר ב"ז–בסיסיות

כאשר אין סכום כזה –מקרה גרוע ביותר •

. במערך

אז הלולאה הפנימית מתבצעת עד שנקבל •

p ≥ q

או , pבכל פעם או שמקדמים את •

nהלולאה מתבצעת א "ז. qשמורידים את

.פעמים

Page 18: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

From https://www.youtube.com/watch?v=OwexZFmPDoQ&index=2&list=PLn-zwZg-1luneIvqH6JTv-KY23SScBoLY

Page 19: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

From https://www.youtube.com/watch?v=OwexZFmPDoQ&index=2&list=PLn-zwZg-1luneIvqH6JTv-KY23SScBoLY

Page 20: םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · , םתירוגלא לש הציר ןמז תויכוביס תא םיחתנמ רשאכ)תוימוטא(תוידוסיה

From https://www.youtube.com/watch?v=OwexZFmPDoQ&index=2&list=PLn-zwZg-1luneIvqH6JTv-KY23SScBoLY