םינותנ ינבמ תודוסי - cs.bgu.ac.ilfds161/wiki.files/ps2-2016.pdf · ,...

Post on 03-Feb-2020

10 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

Marina Kogan Sadetsky – 11.2015

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

חסם עליון

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

f(n)

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

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

.הוא זמן ריצה של האלגוריתם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

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

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

חסם תחתון

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

n0

f(n)

f(n)= (g(n))

cg(n)

.הוא זמן ריצה של האלגוריתם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

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(

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

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

חסם הדוק

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

n0

c1 g(n)f(n)

f(n)= (g(n))

c2 g(n)

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)))

1סעיף 3שאלה

True.

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

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

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)

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

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

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שמורידים את

.פעמים

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

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

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

top related