Top Banner
1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza Homework 2 Due: September 16 th , 2019 @ 11:59PM on Gradescope
21

Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

Jul 06, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

1

Week 3.3, Friday, Sept 6

Announcement: Homework 1 Solutions released on PiazzaHomework 2 Due: September 16th, 2019 @ 11:59PM on Gradescope

Page 2: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

Recap: Master Theorem

β€’ Derived by analyzing recursion tree

𝑇𝑇 𝑛𝑛 = �𝟏𝟏𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎 π’Šπ’Šπ’Šπ’Š 𝒏𝒏 ≀ 𝟏𝟏𝟎𝟎𝟎𝟎

π‘Žπ‘Ž Γ— 𝑇𝑇𝑛𝑛𝑏𝑏

+ 𝟏𝟏 + 𝑛𝑛𝑐𝑐 π‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œ

Obtain Geometric Series: 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛𝑐𝑐 βˆ‘π‘–π‘–=1log𝑏𝑏 𝑛𝑛 π‘Žπ‘Ž

𝑏𝑏𝑐𝑐𝑖𝑖

β€’ Key Ratio: a/bc 𝒍𝒍𝒍𝒍𝒍𝒍𝒃𝒃 𝒂𝒂 β‰₯ 𝒄𝒄 ↔ 𝒂𝒂𝒃𝒃𝒄𝒄β‰₯ 𝟏𝟏

β€’ Case 1: π‘Žπ‘Žπ‘π‘π‘π‘

< 1 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛𝑐𝑐

β€’ Case 2: π‘Žπ‘Žπ‘π‘π‘π‘

= 1 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛𝑐𝑐 log𝑛𝑛

β€’ Case 3: π‘Žπ‘Žπ‘π‘π‘π‘

> 1 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž

2

Page 3: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

Other Form of Master Theorem

β€’ What if MergeCost is not exactly f(n)=nc? β€’ f(n) = n log n? or β€’ f n = 𝑛𝑛

110+log𝑏𝑏 π‘Žπ‘Ž/log(𝑛𝑛)?

3

Case 3: 𝑓𝑓 𝑛𝑛 = 𝑂𝑂 𝑛𝑛log𝑏𝑏 π‘Žπ‘Žβˆ’Ξ΅ 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž

𝑇𝑇 𝑛𝑛 = �𝑢𝑢 𝟏𝟏 π’Šπ’Šπ’Šπ’Š 𝒏𝒏 ≀ 𝟏𝟏𝟎𝟎𝟎𝟎

π‘Žπ‘Ž Γ— 𝑇𝑇𝑛𝑛𝑏𝑏

+ πŸ“πŸ“πŸŽπŸŽ + 𝑓𝑓(𝑛𝑛) π‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œ

Case 1: 𝑓𝑓 𝑛𝑛 = Ξ© 𝑛𝑛Ρ+log𝑏𝑏 π‘Žπ‘Ž 𝑇𝑇 𝑛𝑛 = Θ 𝑓𝑓(𝑛𝑛)

Case 2: 𝑓𝑓 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜ 𝑛𝑛 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜+1 𝑛𝑛(assumes π‘˜π‘˜ β‰₯ 0)

Assume𝑓𝑓(𝑛𝑛) β‰₯ 0

Page 4: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

Clicker Question

Suppose that f n = 𝑛𝑛110+log𝑏𝑏 π‘Žπ‘Ž/log(𝑛𝑛) above what is 𝑇𝑇 𝑛𝑛 ?

A. Θ 𝑓𝑓(𝑛𝑛) B. Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜+1 𝑛𝑛

C. 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž D. More info required

4

Case 3: 𝑓𝑓 𝑛𝑛 = 𝑂𝑂 𝑛𝑛log𝑏𝑏 π‘Žπ‘Žβˆ’Ξ΅ 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž

𝑇𝑇 𝑛𝑛 ≀ �𝟏𝟏𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎 π’Šπ’Šπ’Šπ’Š 𝒏𝒏 ≀ 𝟏𝟏𝟎𝟎𝟎𝟎

π‘Žπ‘Ž Γ— 𝑇𝑇𝑛𝑛𝑏𝑏

+ πŸ“πŸ“πŸŽπŸŽ + 𝑓𝑓(𝑛𝑛) π‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œ

Case 1: 𝑓𝑓 𝑛𝑛 = Ξ© 𝑛𝑛Ρ+log𝑏𝑏 π‘Žπ‘Ž 𝑇𝑇 𝑛𝑛 = Θ 𝑓𝑓(𝑛𝑛)

Case 2: 𝑓𝑓 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜ 𝑛𝑛 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜+1 𝑛𝑛(assumes π‘˜π‘˜ β‰₯ 0)

Assume𝑓𝑓(𝑛𝑛) β‰₯ 0

Page 5: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

Clicker Question

Suppose that f n = 𝑛𝑛110+log𝑏𝑏 π‘Žπ‘Ž/log(𝑛𝑛) above what is 𝑇𝑇 𝑛𝑛 ?

A. Θ 𝑓𝑓(𝑛𝑛) B. Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜+1 𝑛𝑛

C. 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž D. More info required

5

Case 3: 𝑓𝑓 𝑛𝑛 = 𝑂𝑂 𝑛𝑛log𝑏𝑏 π‘Žπ‘Žβˆ’Ξ΅ 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž

𝑇𝑇 𝑛𝑛 ≀ �𝟏𝟏𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎 π’Šπ’Šπ’Šπ’Š 𝒏𝒏 ≀ 𝟏𝟏𝟎𝟎𝟎𝟎

π‘Žπ‘Ž Γ— 𝑇𝑇𝑛𝑛𝑏𝑏

+ πŸ“πŸ“πŸŽπŸŽ + 𝑓𝑓(𝑛𝑛) π‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œ

Case 1: 𝑓𝑓 𝑛𝑛 = Ξ© 𝑛𝑛Ρ+log𝑏𝑏 π‘Žπ‘Ž 𝑇𝑇 𝑛𝑛 = Θ 𝑓𝑓(𝑛𝑛)

Case 2: 𝑓𝑓 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜ 𝑛𝑛 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜+1 𝑛𝑛(assumes π‘˜π‘˜ β‰₯ 0)

Assume𝑓𝑓(𝑛𝑛) β‰₯ 0

Page 6: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

Other Types of Recurrences

β€’ T n = T n βˆ’ 1 + 1 (Unroll: T n = Θ(n))β€’ T n = T n βˆ’ 1 + 1 = T n βˆ’ 2 + 1 + 1

= T n βˆ’ 3 + 1 + 1 + 1 = β‹― = T n βˆ’ k + k= T 1 + n βˆ’ 1

β€’ T n = 2 Γ— T n βˆ’ 10 (Exponential)

T n = 2T n βˆ’ 10 = 2 2𝑇𝑇 𝑛𝑛 βˆ’ 20 = 4T n βˆ’ 20

= 8T n βˆ’ 30 = β‹― = 2𝑖𝑖T n βˆ’ 10i

= 2𝑛𝑛10βˆ’1T 10 = Θ 2

𝑛𝑛10

6

Only constant reduction in input sizeTwo branches

Page 7: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

Other Recurrences

β€’ T n = T n βˆ’ 1 + T(𝑛𝑛 βˆ’ 3) (Exponential)

T n = Θ cn

β€’ Unrolling gets messy fast! How to find c? [Trick]Assume 𝑇𝑇 𝑛𝑛 = 𝑐𝑐𝑛𝑛 for some c𝑐𝑐𝑛𝑛 = 𝑇𝑇 𝑛𝑛 = T n βˆ’ 1 + T 𝑛𝑛 βˆ’ 3 = π‘π‘π‘›π‘›βˆ’1 + π‘π‘π‘›π‘›βˆ’3

β†’ 𝑐𝑐𝑛𝑛 = π‘π‘π‘›π‘›βˆ’1 + π‘π‘π‘›π‘›βˆ’3 β†’ c3 = 𝑐𝑐2 + 1

β†’ c β‰ˆ 1.46577(Root of Characteristic Equation)

Must verify solution by induction7

Only constant reduction in input sizeTwo branches

Page 8: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

Other Recurrences

β€’ T n = T n βˆ’ 1 + T(𝑛𝑛 βˆ’ 3) (Exponential)

β†’ 𝑐𝑐𝑛𝑛 = π‘π‘π‘›π‘›βˆ’1 + π‘π‘π‘›π‘›βˆ’3 β†’ c3 = 𝑐𝑐2 + 1

β†’ c β‰ˆ 1.46577(Root of Characteristic Equation)

Claim: T n ≀ π‘˜π‘˜π‘π‘π‘›π‘› (pick k s.t. T(0) < k)

Inductive Step: T n = T n βˆ’ 1 + T 𝑛𝑛 βˆ’ 3≀ π‘˜π‘˜ π‘π‘π‘›π‘›βˆ’1 + π‘π‘π‘›π‘›βˆ’3 (IH)= π‘˜π‘˜ 𝑐𝑐𝑛𝑛 (Choice of c)

8

Only constant reduction in input sizeTwo branches

Page 9: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

Other Recurrences

β€’ MergeSort with Uneven Split: Split L into A, B of sizes n/4 and 3n/4.

T n = Tn4

+ 𝑇𝑇3𝑛𝑛4

+ 𝑛𝑛

A bit harder to Analyze with recursion tree

9

n

�𝑛𝑛 16 οΏ½9𝑛𝑛16οΏ½3𝑛𝑛

16

οΏ½3𝑛𝑛4�𝑛𝑛 4

οΏ½3𝑛𝑛16

O(log n)

n

n

n

𝐓𝐓 𝒏𝒏 = 𝜣𝜣 𝒏𝒏 π₯π₯π₯π₯π₯π₯𝒏𝒏… …

Page 10: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

Another Unbalanced Recurrence

β€’ Geometric Series

T n = Tn5

+ 𝑇𝑇3𝑛𝑛4

+ 𝑛𝑛

β€’ Claim: T n = Θ 𝑛𝑛

10

n

�𝑛𝑛 25 οΏ½9𝑛𝑛16 οΏ½3𝑛𝑛

20

οΏ½3𝑛𝑛4�𝑛𝑛 5

οΏ½3𝑛𝑛20

O(log n)

n

(19/20)n

(19/20)2n

T n ≀ n�𝑖𝑖=0

∞1920

𝑖𝑖

Page 11: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

11

Mergesort Quicksort Binary Search Linear-time selection Skyline Problem Maximum Subarray Counting inversions

Page 12: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

12

Maximum Subarray ProblemGiven an array A of n (positive and negative) numbers, find the contiguous subarray whose sum has the largest value.

10 5 -20 5 12 -6 33 6 2 -52 6 45 3 -4

Brute Force For every pair i and j, i≀j, compute the sum from A(i) to A(j).

Remember the pair resulting in the maximum. How many pairs? O(n2) Using previously computed values, the total running time is

O(n2) (n3 is excessive brute force)

Page 13: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

13

Aim for O(n) or O(n log n)? Divide and conquer? Split the problem into two halves and solve each recursively Combine two solutions to produce the final answer

Page 14: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

14

10 5 -20 21 12 -18 12 5 15 -22 6 5 3 -4 -12 55

10 5 -20 21 12 -18 12 5 15 -22 6 5 3 -4 -12 55

10 5 -20 21 12 -18 12 5 15 -22 6 5 3 -4 -12 55

32 46

Page 15: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

15

Combining the answers from the two subproblems

The maximum subarray can be in one the two halves (easy case) or it can cross the midpoint

To determine the maximum subarray crossing the midpoint, we can compute the two maximum subarrays β€œanchored” at the midpoint. Running Sum: sweep left (resp. right) from midpoint keeping track of max Requires time O(n) for merge step

Results in T(n) = 2T(n/2) + cnGives an O(n log n) time algorithm

Page 16: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

16

A Faster O(n) time solutionIdea: Each recursive call returns additional information to make merge step easier

Optimal Solution: (i,j) and value 𝒗𝒗 = βˆ‘π‘₯π‘₯=𝑖𝑖𝑗𝑗 𝐴𝐴[π‘₯π‘₯]

Total Sum: 𝑇𝑇 = βˆ‘π‘₯π‘₯=1𝑛𝑛 𝐴𝐴[π‘₯π‘₯] π’Šπ’Šπ’†π’†π’π’π’†π’† maximizing value 𝒗𝒗𝒆𝒆𝒏𝒏𝒆𝒆 = βˆ‘π‘₯π‘₯=𝑖𝑖𝑒𝑒𝑒𝑒𝑒𝑒

𝑛𝑛 𝐴𝐴[π‘₯π‘₯]

π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ maximizing value π’—π’—π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = βˆ‘π‘₯π‘₯=1𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑏𝑏𝑒𝑒 𝐴𝐴[π‘₯π‘₯]

10 5 -20 21 12 -18 12 5 -50 2 5

π‘—π‘—π‘œπ‘œ , π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ π’Šπ’Šπ’†π’†π’π’π’†π’†

𝒗𝒗𝒆𝒆𝒏𝒏𝒆𝒆 = πŸ“πŸ“π’—π’—π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = 𝟐𝟐𝟐𝟐 𝒗𝒗 = πŸ‘πŸ‘πŸπŸ

Page 17: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

17

A Faster O(n) time solution

Merge in Constant Time: Suppose A was split into L and R

Three possibilities for (i,j): π‘œπ‘œπΏπΏ , 𝑗𝑗𝐿𝐿 , π‘œπ‘œπ‘…π‘… , 𝑗𝑗𝑅𝑅 , π‘œπ‘œπ‘’π‘’π‘›π‘›π‘’π‘’πΏπΏ , 𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝐿𝐿

Case 1: Opt in L Case 2: Opt in R Case 3: Opt crosses L and R

10 5 -20 21 12 -18 12 5 -50 2 5 -5 50 1 -2 -80 44 1 1 6

𝑣𝑣𝐿𝐿 𝑣𝑣𝑅𝑅 𝑣𝑣𝑒𝑒𝑛𝑛𝑒𝑒𝐿𝐿 + 𝑣𝑣𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝑅𝑅

𝐯𝐯𝐑𝐑 = πŸ“πŸ“πŸπŸπ―π―πžπžπžπžπžπžπ‘π‘ = πŸ“πŸ“πŸπŸ

π―π―π›π›πžπžπ₯π₯π›π›πžπžπ‘π‘ = πŸ’πŸ’πŸ’πŸ’π―π―πžπžπžπžπžπžπ‹π‹ = πŸπŸπ‘£π‘£πΏπΏ = 32π’—π’—π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’π‘³π‘³ = 𝟐𝟐𝟐𝟐

𝑣𝑣 = max 𝑣𝑣𝐿𝐿,𝑣𝑣𝑅𝑅, 𝑣𝑣𝑒𝑒𝑛𝑛𝑒𝑒𝐿𝐿 + 𝑣𝑣𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝑅𝑅 = 𝑣𝑣𝑒𝑒𝑛𝑛𝑒𝑒𝐿𝐿 + 𝑣𝑣𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝑅𝑅 = 53β†’ π‘œπ‘œ, 𝑗𝑗 = π‘œπ‘œπ‘’π‘’π‘›π‘›π‘’π‘’πΏπΏ , 𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝐿𝐿

Page 18: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

18

A Faster O(n) time solution

Merge in Constant Time: Suppose A was split into L and R

Still Needs to Compute Extra Values Update Total: 𝑇𝑇 = 𝑇𝑇𝐿𝐿 + 𝑇𝑇𝑅𝑅

π’Šπ’Šπ’†π’†π’π’π’†π’† maximizing value 𝒗𝒗𝒆𝒆𝒏𝒏𝒆𝒆 = βˆ‘π‘₯π‘₯=𝑖𝑖𝑒𝑒𝑒𝑒𝑒𝑒𝑛𝑛 𝐴𝐴[π‘₯π‘₯]

Case 1: π’Šπ’Šπ’†π’†π’π’π’†π’† = π‘œπ‘œπ‘’π‘’π‘›π‘›π‘’π‘’π‘…π‘… (interval in R)

Case 2: π’Šπ’Šπ’†π’†π’π’π’†π’† = π‘œπ‘œπ‘’π‘’π‘›π‘›π‘’π‘’πΏπΏ (interval crosses L)

10 5 -20 21 12 -18 12 5 -50 2 5 -5 50 1 -2 -80 44 1 1 6π―π―πžπžπžπžπžπžπ‘π‘ = πŸ“πŸ“πŸπŸπ―π―πžπžπžπžπžπžπ‹π‹ = 𝟐𝟐

𝐯𝐯𝒆𝒆𝒏𝒏𝒆𝒆 = max{𝐯𝐯𝒆𝒆𝒏𝒏𝒆𝒆𝐑𝐑 ,𝐓𝐓𝑹𝑹 + π―π―πžπžπžπžπžπžπ‹π‹ } = 𝐯𝐯𝒆𝒆𝒏𝒏𝒆𝒆𝐑𝐑 = πŸ“πŸ“πŸπŸ π’Šπ’Šπ’†π’†π’π’π’†π’† = π‘œπ‘œπ‘’π‘’π‘›π‘›π‘’π‘’π‘…π‘…

For any merges higher in the recursion tree!

Page 19: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

19

A Faster O(n) time solution

Merge in Constant Time: Suppose A was split into L and R

Merge Needs to Compute Extra Values 𝑇𝑇 = 𝑇𝑇𝐿𝐿 + 𝑇𝑇𝑅𝑅

π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ maximizing value π’—π’—π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = βˆ‘π‘₯π‘₯=1𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑏𝑏𝑒𝑒 𝐴𝐴[π‘₯π‘₯]

Similar to computing π’Šπ’Šπ’†π’†π’π’π’†π’† Case 1: π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = 𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝐿𝐿 (interval in L)

Case 2: π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = 𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝑅𝑅 (interval crosses R)

10 5 -20 21 12 -18 12 5 -50 2 5 -5 50 1 -2 -80 44 1 1 6

π―π―π›π›πžπžπ₯π₯π›π›πžπžπ‘π‘ = πŸ’πŸ’πŸ’πŸ’π’—π’—π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’π‘³π‘³ = 𝟐𝟐𝟐𝟐

π―π―π›π›πžπžπ₯π₯π›π›πžπž = max{π―π―π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’π‹π‹ ,𝐓𝐓𝑳𝑳 + π―π―π›π›πžπžπ₯π₯π›π›πžπžπ‘Ήπ‘Ή } = 𝐓𝐓𝑳𝑳 + π―π―π›π›πžπžπ₯π₯π›π›πžπžπ‘Ήπ‘Ή = βˆ’πŸπŸπŸ’πŸ’ + πŸ’πŸ’πŸ’πŸ’ = πŸ‘πŸ‘πŸŽπŸŽ π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = 𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝑅𝑅

Page 20: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

20

Summary: A Faster O(n) time solution

Idea: Each recursive call returns additional information to make merge step easier

Constant Time Merge:

𝑇𝑇 𝑛𝑛 = 2𝑇𝑇𝑛𝑛2

+ 1

Master Theorem (a=2, b=2, c=0): 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛

Page 21: Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza. Homework 2 Due: September 16. th, 2019 @ 11:59PM on Gradescope

21

Summary: Maximum Subarray problemGiven an array A of n (positive and negative) numbers, find the contiguous subarray whose sum has the largest value.

10 5 -20 5 12 -6 33 6 2 -52 6 45 3 -4

All pairs: O(n2)

D&C with simple combine step: O(n log n)

D&C with extra information: O(n)

Simple non-D&C solution: O(n)