Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
יסודות מבני נתונים
סימונים אסימפטוטיים: 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