Lecture 3: Asymptotic Analysis + Recurrences
Data Structures and Algorithms
CSE 373 SU 18 – BEN JONES 1
Analysis + Recurrences Algorithms CSE 373 SU 18 BEN JONES 1 Warmup - - PowerPoint PPT Presentation
Lecture 3: Asymptotic Data Structures and Analysis + Recurrences Algorithms CSE 373 SU 18 BEN JONES 1 Warmup Write a model and find Big-O for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { System.out.println
Data Structures and Algorithms
CSE 373 SU 18 – BEN JONES 1
for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { System.out.println(“Hello!”); } }
CSE 373 SP 18 - KASEY CHAMPION 2
Summation 1 + 2 + 3 + 4 +… + n =
𝑗=1 𝑜
𝑗
= f(a) + f(a + 1) + f(a + 2) + … + f(b-2) + f(b-1) + f(b)
Definition: Summation
𝑗=𝑏 𝑐
𝑔(𝑗) T(n) =
𝑗=0 𝑜−1
𝑘=0 𝑗−1
𝑑
for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { System.out.println(“Hello!”); } }
CSE 373 WI 18 – MICHAEL LEE 3
T(n) =
𝑗=0 𝑜−1
𝑘=0 𝑗−1
𝑑 =
𝑗=0 𝑜−1
𝑑𝑗 Summation of a constant = 𝑑
𝑗=0 𝑜−1
𝑗 Factoring out a constant = 𝑑 𝑜 𝑜 − 1 2 Gauss’s Identity = 𝑑 2 𝑜2 − 𝑑 2 𝑜 O(n2)
public int factorial(int n) { if (n == 0 || n == 1) { return 1; } else { return n * factorial(n – 1); }
CSE 373 SP 18 - KASEY CHAMPION 4
+1 +1 +3 +3 +c +c +???? ??
public int factorial(int n) { if (n == 0 || n == 1) { return 1; } else { return n * factorial(n – 1); }
CSE 373 SP 18 - KASEY CHAMPION 5
+c +c1 +T(n (n-1) 1) +c +c2
C1 C2 + T(n-1) T(n) = when n = 0 or 1
Mathematical equation that recursively defines a sequence The notation above is like an if / else statement
Definition: Recurrence
T(3) = T(n) = C1 + Summation of a constant T(n) = C1 + (n-1)C2
CSE 373 SP 18 - KASEY CHAMPION 6
T(n) = when n = 0 or 1
C1 C2 + T(n-1)
𝑗=0 𝑜−1
𝐷2 C2 + T(3 – 1) = C2 + (C2 + T(2 – 1)) = C2 + (C2 + (C1)) = 2C2 + C1
day https://go //goo.gl/f
ms/rVrV rVUkFDds kFDdsqI qI8pkD2 8pkD2
CSE 373 SU 18 – BEN JONES 7
naming: CONSTANTS_USE_CAPS, ClassName, methodName
CSE 373 SU 18 – BEN JONES 8
CSE 373 SU 18 - ROBBIE WEBER 9
CSE 373 SU 18 - ROBBIE WEBER 10
1 𝑥ℎ𝑓𝑜 𝑜 ≤ 1
2𝑈 𝑜 2 + 𝑜 𝑝𝑢ℎ𝑓𝑠𝑥
𝑈 𝑜 2 + 1 𝑝𝑢ℎ𝑓𝑠𝑥𝑗𝑡𝑓
CSE 373 SU 18 - ROBBIE WEBER 11
1 𝑥ℎ𝑓𝑜 𝑜 ≤ 1
2𝑈 𝑜 2 + 𝑜 𝑝𝑢ℎ𝑓𝑠𝑥
𝑈 𝑜 2 + 1 𝑝𝑢ℎ𝑓𝑠𝑥𝑗𝑡𝑓
… 1 1 1 1
CSE 373 SU 18 - ROBBIE WEBER 12
𝑈 𝑜 = 1 𝑥ℎ𝑓𝑜 𝑜 ≤ 1 2𝑈 𝑜 2 + 𝑜 𝑝𝑢ℎ𝑓𝑠𝑥𝑗𝑡𝑓 𝑈 𝑜 2 + 1 𝑝𝑢ℎ𝑓𝑠𝑥𝑗𝑡𝑓 Level vel Input Size Work/cal /call Work/l /lev evel el 𝑜 1 1 1 𝑜/2 1 1 2 𝑜/22 1 1 𝑗 𝑜/2𝑗 1 1 log2𝑜 1 1 1
log2 𝑜−1 1 + 1 = log2 𝑜
13
n 8 n 8 n 8 n 8 n 8 n 8 n 8 n 8
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … … … … … … … … … … … … … … … …
CSE 373 SU 18 - ROBBIE WEBER
How much wo work is done by recur ursiv ive e levels els (branch ch nodes es)? )?
How much wo work is done by the base case e level vel (leaf af nodes es)? )?
CSE 373 SU 18 - ROBBIE WEBER 14
𝑆𝑓𝑑𝑣𝑠𝑡𝑗𝑤𝑓 𝑥𝑝𝑠𝑙 =
𝑗=0 𝑚𝑏𝑡𝑢𝑆𝑓𝑑𝑣𝑠𝑡𝑗𝑤𝑓𝑀𝑓𝑤𝑓𝑚
𝑐𝑠𝑏𝑜𝑑ℎ𝑂𝑣𝑛 𝑗 𝑐𝑠𝑏𝑜𝑑ℎ𝑋𝑝𝑠𝑙(𝑗) 𝑂𝑝𝑜𝑆𝑓𝑑𝑣𝑠𝑡𝑗𝑤𝑓 𝑥𝑝𝑠𝑙 = 𝑋𝑝𝑠𝑙𝑄𝑓𝑠𝐶𝑏𝑡𝑓𝐷𝑏𝑡𝑓 × 𝑜𝑣𝑛𝑐𝑓𝑠𝐷𝑏𝑚𝑚𝑡 𝑈 𝑜 = 1 𝑥ℎ𝑓𝑜 𝑜 ≤ 1 2𝑈 𝑜 2 + 𝑜 𝑝𝑢ℎ𝑓𝑠𝑥𝑗𝑡𝑓 2𝑗 (𝑜/2𝑗)
𝑗=0 log2 𝑜−1
2𝑗 𝑜 2𝑗 1 ⋅ 2log2 𝑜 = 𝑜 𝑈 𝑜 =
𝑗=0 log2 𝑜−1
2𝑗 𝑜 2𝑗 + 𝑜 = 𝑜 log2 𝑜 + 𝑜 2𝑗(𝑜/2𝑗) = 𝑜 (𝑜/2𝑗) = 1 → 2𝑗 = 𝑜 → 𝑗 = log2 𝑜
CSE 373 SU 18 - ROBBIE WEBER 15
𝑑n2 𝑑 n 16
2
𝑑 n 16
2
𝑑 n 16
2
𝑑 n 16
2
𝑑 n 16
2
𝑑 n 16
2
𝑑 n 16
2
𝑑 n 16
2
𝑑 n 16
2
… … … … … … … … … … … … … … … … … … … … … … … … … … … 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Answer the following questions: 1. What is input size on level 𝑗?
level 𝑗?
recursive level 𝑗?
case?
levels? 𝑈 𝑜 = 5 𝑥ℎ𝑓𝑜 𝑜 ≤ 4 3𝑈 𝑜 4 + 𝑑𝑜2 𝑝𝑢ℎ𝑓𝑠𝑥𝑗𝑡𝑓 𝑑 n 4
2
𝑑 n 4
2
𝑑 n 4
2
c 𝑜 4
2
c 𝑜 4
2
𝑑 𝑜 4
2
𝑑𝑜2
CSE 373 SU 18 - ROBBIE WEBER 16
Level el (i) Number er of Nodes es Work rk per Node Work rk per Level el 1 𝑑𝑜2 𝑑𝑜2 1 3 𝑑 𝑜 4
2
3 16 𝑑𝑜2 2 32 𝑑 𝑜 42
2
3 16
2
𝑑𝑜2 𝑗 3𝑗 𝑑 𝑜 4𝑗
2
3 16
𝑗
𝑑𝑜2 Base = log4𝑜 − 1 3log4 𝑜−1 5 5 3 𝑜log4 3
1. Input size on level 𝑗?
𝑜 4𝑗 𝑑 𝑜 4𝑗
2
When 𝑜
4𝑗 = 4 → log4 𝑜 − 1
5 𝑈 𝑜 = 5 𝑥ℎ𝑓𝑜 𝑜 ≤ 4 3𝑈 𝑜 4 + 𝑑𝑜2 𝑝𝑢ℎ𝑓𝑠𝑥𝑗𝑡𝑓
3𝑗𝑑 𝑜 4𝑗
2
= 3 16
𝑗
𝑑𝑜2 𝑈 𝑜 =
𝑗=0 log4 𝑜 −2
3 16
𝑗
𝑑𝑜2 + 5 3 𝑜log43 3log4 𝑜−1 = 3log4 𝑜 3 power of a log 𝑦log𝑐 𝑧 = 𝑧log𝑐 𝑦 = 𝑜log4 3 3 3𝑗
CSE 373 SU 18 - ROBBIE WEBER 17
𝑈 𝑜 =
𝑗=0 log4 𝑜 −2
3 16
𝑗
𝑑𝑜2 + 5 3 𝑜log43 𝑈 𝑜 ≤ 𝑑𝑜2 1 1 − 3 16 + 5 3 𝑜log43 𝑈 𝑜 = 𝑑𝑜2 3 16
log4 𝑜−1
− 1 3 16 − 1 + 5 3 𝑜log43 𝑈 𝑜 ∈ 𝑃(𝑜2)
𝑗=𝑏 𝑐
𝑑𝑔(𝑗) = 𝑑
𝑗=𝑏 𝑐
𝑔(𝑗) factoring out a constant 𝑈 𝑜 = 𝑑𝑜2
𝑗=0 log4 𝑜 −2
3 16
𝑗
+ 5 3 𝑜log43
𝑗=0 𝑜−1
𝑦𝑗 = 𝑦𝑜 − 1 𝑦 − 1 finite geometric series
𝑗=0 ∞
𝑦𝑗 = 1 1 − 𝑦 infinite geometric series when -1 < x < 1 If we’re trying to prove upper bound… 𝑈 𝑜 ≤ 𝑑𝑜2
𝑗=0 ∞
3 16
𝑗
+ 5 3 𝑜log43 Closed form:
CSE 373 SU 18 - ROBBIE WEBER 18
CSE 373 SU 18 - ROBBIE WEBER 19
CSE 373 SU 18 - ROBBIE WEBER 20
Given a recurrence of the following form:
CSE 373 SU 18 - ROBBIE WEBER 21
𝑈 𝑜 = 𝑒 𝑥ℎ𝑓𝑜 𝑜 ≤ some constant 𝑏𝑈 𝑜 𝑐 + 𝑜𝑑 𝑝𝑢ℎ𝑓𝑠𝑥𝑗𝑡𝑓 log𝑐 𝑏 = 𝑑 𝑈 𝑜 is Θ 𝑜𝑑 log 𝑜 log𝑐 𝑏 > 𝑑 𝑈 𝑜 is Θ 𝑜log𝑐 𝑏 If If 𝑈 𝑜 is Θ 𝑜𝑑 log𝑐 𝑏 < 𝑑 If then then then Given a recurrence of the form:
The case
The case
The case
CSE 373 SU 18 - ROBBIE WEBER 22
log𝑐 𝑏 < 𝑑 log𝑐 𝑏 = 𝑑 log𝑐 𝑏 > 𝑑
𝑚𝑓𝑏𝑔𝑋𝑝𝑠𝑙 ≈ 𝑒 𝑜log𝑐 𝑏 ℎ𝑓𝑗ℎ𝑢 ≈ log𝑐 𝑏 𝑐𝑠𝑏𝑜𝑑ℎ𝑋𝑝𝑠𝑙 ≈ 𝑜𝑑log𝑐 𝑏
𝑈 𝑜 = 𝑒 𝑥ℎ𝑓𝑜 𝑜 ≤ some constant 𝑏𝑈 𝑜 𝑐 + 𝑜𝑑 𝑝𝑢ℎ𝑓𝑠𝑥𝑗𝑡𝑓 log𝑐 𝑏 = 𝑑 𝑈 𝑜 is Θ 𝑜𝑑 log 𝑜 log𝑐 𝑏 > 𝑑 𝑈 𝑜 is Θ 𝑜log𝑐 𝑏 If If 𝑈 𝑜 is Θ 𝑜𝑑 log𝑐 𝑏 < 𝑑 If then then then Given a recurrence of the form:
CSE 373 SU 18 - ROBBIE WEBER 23
CSE 373 SU 18 - ROBBIE WEBER 24
CSE 373 SU 18 - ROBBIE WEBER 25
𝑜 10000 10000𝑗 ≈ 10,000 ⋅
𝑜2 10,0002 = 𝑃(𝑜2)
𝑜2 𝑜
CSE 373 SU 18 - ROBBIE WEBER 26