Top Banner
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.1 Introduction to Algorithms 6.046J/18.401J LECTURE 2 Asymptotic Notation O-, -, and Θ-notation Recurrences Substitution method Iterating the recurrence Recursion tree Master method Prof. Erik Demaine
57

mit 演算法 Lec2

May 27, 2015

Download

Documents

Henry Chang
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: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.1

Introduction to Algorithms6.046J/18.401J

LECTURE 2Asymptotic Notation• O-, Ω-, and Θ-notationRecurrences• Substitution method• Iterating the recurrence• Recursion tree• Master method

Prof. Erik Demaine

Page 2: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.2

Asymptotic notation

O-notation (upper bounds):

We write f(n) = O(g(n)) if there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n) for all n ≥ n0.

We write f(n) = O(g(n)) if there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n) for all n ≥ n0.

Page 3: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.3

Asymptotic notation

O-notation (upper bounds):

We write f(n) = O(g(n)) if there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n) for all n ≥ n0.

We write f(n) = O(g(n)) if there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n) for all n ≥ n0.

EXAMPLE: 2n2 = O(n3) (c = 1, n0 = 2)

Page 4: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.4

Asymptotic notation

O-notation (upper bounds):

We write f(n) = O(g(n)) if there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n) for all n ≥ n0.

We write f(n) = O(g(n)) if there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n) for all n ≥ n0.

EXAMPLE: 2n2 = O(n3) (c = 1, n0 = 2)

functions, not values

Page 5: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.5

Asymptotic notation

O-notation (upper bounds):

We write f(n) = O(g(n)) if there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n) for all n ≥ n0.

We write f(n) = O(g(n)) if there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n) for all n ≥ n0.

EXAMPLE: 2n2 = O(n3) (c = 1, n0 = 2)

functions, not values

funny, “one-way”equality

Page 6: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.6

Set definition of O-notation

O(g(n)) = f(n) : there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n)for all n ≥ n0

O(g(n)) = f(n) : there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n)for all n ≥ n0

Page 7: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.7

Set definition of O-notation

O(g(n)) = f(n) : there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n)for all n ≥ n0

O(g(n)) = f(n) : there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n)for all n ≥ n0

EXAMPLE: 2n2 ∈ O(n3)

Page 8: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.8

Set definition of O-notation

O(g(n)) = f(n) : there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n)for all n ≥ n0

O(g(n)) = f(n) : there exist constants c > 0, n0 > 0 such that 0 ≤ f(n) ≤ cg(n)for all n ≥ n0

EXAMPLE: 2n2 ∈ O(n3)(Logicians: λn.2n2 ∈ O(λn.n3), but it’s convenient to be sloppy, as long as we understand what’s really going on.)

Page 9: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.9

Macro substitution

Convention: A set in a formula represents an anonymous function in the set.

Page 10: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.10

Macro substitution

Convention: A set in a formula represents an anonymous function in the set.

f(n) = n3 + O(n2) means f(n) = n3 + h(n)for some h(n) ∈ O(n2) .

EXAMPLE:

Page 11: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.11

Macro substitution

Convention: A set in a formula represents an anonymous function in the set.

n2 + O(n) = O(n2)meansfor any f(n) ∈ O(n):

n2 + f(n) = h(n)for some h(n) ∈ O(n2) .

EXAMPLE:

Page 12: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.12

Ω-notation (lower bounds)

O-notation is an upper-bound notation. It makes no sense to say f(n) is at least O(n2).

Page 13: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.13

Ω-notation (lower bounds)

O-notation is an upper-bound notation. It makes no sense to say f(n) is at least O(n2).

Ω(g(n)) = f(n) : there exist constants c > 0, n0 > 0 such that 0 ≤ cg(n) ≤ f(n)for all n ≥ n0

Ω(g(n)) = f(n) : there exist constants c > 0, n0 > 0 such that 0 ≤ cg(n) ≤ f(n)for all n ≥ n0

Page 14: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.14

Ω-notation (lower bounds)

O-notation is an upper-bound notation. It makes no sense to say f(n) is at least O(n2).

Ω(g(n)) = f(n) : there exist constants c > 0, n0 > 0 such that 0 ≤ cg(n) ≤ f(n)for all n ≥ n0

Ω(g(n)) = f(n) : there exist constants c > 0, n0 > 0 such that 0 ≤ cg(n) ≤ f(n)for all n ≥ n0

EXAMPLE: (c = 1, n0 = 16))(lgnn Ω=

Page 15: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.15

Θ-notation (tight bounds)

Θ(g(n)) = O(g(n)) ∩ Ω(g(n))Θ(g(n)) = O(g(n)) ∩ Ω(g(n))

Page 16: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.16

Θ-notation (tight bounds)

Θ(g(n)) = O(g(n)) ∩ Ω(g(n))Θ(g(n)) = O(g(n)) ∩ Ω(g(n))

)(2 2221 nnn Θ=−EXAMPLE:

Page 17: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.17

ο-notation and ω-notation

O-notation and Ω-notation are like ≤ and ≥.o-notation and ω-notation are like < and >.

ο(g(n)) = f(n) : for any constant c > 0, there is a constant n0 > 0such that 0 ≤ f(n) < cg(n)for all n ≥ n0

ο(g(n)) = f(n) : for any constant c > 0, there is a constant n0 > 0such that 0 ≤ f(n) < cg(n)for all n ≥ n0

EXAMPLE: (n0 = 2/c)2n2 = o(n3)

Page 18: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.18

ο-notation and ω-notation

O-notation and Ω-notation are like ≤ and ≥.o-notation and ω-notation are like < and >.

ω(g(n)) = f(n) : for any constant c > 0, there is a constant n0 > 0such that 0 ≤ cg(n) < f(n)for all n ≥ n0

ω(g(n)) = f(n) : for any constant c > 0, there is a constant n0 > 0such that 0 ≤ cg(n) < f(n)for all n ≥ n0

EXAMPLE: (n0 = 1+1/c))(lg nn ω=

Page 19: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.19

Solving recurrences

• The analysis of merge sort from Lecture 1required us to solve a recurrence.

• Recurrences are like solving integrals, differential equations, etc.oLearn a few tricks.

• Lecture 3: Applications of recurrences to divide-and-conquer algorithms.

Page 20: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.20

Substitution method

1. Guess the form of the solution.2. Verify by induction.3. Solve for constants.

The most general method:

Page 21: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.21

Substitution method

1. Guess the form of the solution.2. Verify by induction.3. Solve for constants.

The most general method:

EXAMPLE: T(n) = 4T(n/2) + n• [Assume that T(1) = Θ(1).]• Guess O(n3) . (Prove O and Ω separately.)• Assume that T(k) ≤ ck3 for k < n .• Prove T(n) ≤ cn3 by induction.

Page 22: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.22

Example of substitution

3

33

3

3

))2/(()2/(

)2/(4)2/(4)(

cnnnccn

nncnnc

nnTnT

≤−−=

+=+≤

+=

desired – residual

whenever (c/2)n3 – n ≥ 0, for example, if c ≥ 2 and n ≥ 1.

desired

residual

Page 23: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.23

Example (continued)• We must also handle the initial conditions,

that is, ground the induction with base cases.

• Base: T(n) = Θ(1) for all n < n0, where n0is a suitable constant.

• For 1 ≤ n < n0, we have “Θ(1)” ≤ cn3, if we pick c big enough.

Page 24: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.24

Example (continued)• We must also handle the initial conditions,

that is, ground the induction with base cases.

• Base: T(n) = Θ(1) for all n < n0, where n0is a suitable constant.

• For 1 ≤ n < n0, we have “Θ(1)” ≤ cn3, if we pick c big enough.

This bound is not tight!

Page 25: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.25

A tighter upper bound?

We shall prove that T(n) = O(n2).

Page 26: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.26

A tighter upper bound?

We shall prove that T(n) = O(n2).

Assume that T(k) ≤ ck2 for k < n:

)(

)2/(4)2/(4)(

2

2

2

nOncn

nncnnTnT

=+=

+≤+=

Page 27: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.27

A tighter upper bound?

We shall prove that T(n) = O(n2).

Assume that T(k) ≤ ck2 for k < n:

)(

)2/(4)2/(4)(

2

2

2

nOncn

nncnnTnT

=+=

+≤+=

Wrong! We must prove the I.H.

Page 28: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.28

A tighter upper bound?

We shall prove that T(n) = O(n2).

Assume that T(k) ≤ ck2 for k < n:

)(

)2/(4)2/(4)(

2

2

2

nOncn

nncnnTnT

=+=

+≤+=

Wrong! We must prove the I.H.

2

2 )(cn

ncn≤

−−=for no choice of c > 0. Lose!

[ desired – residual ]

Page 29: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.29

A tighter upper bound!IDEA: Strengthen the inductive hypothesis.• Subtract a low-order term.Inductive hypothesis: T(k) ≤ c1k2 – c2k for k < n.

Page 30: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.30

A tighter upper bound!IDEA: Strengthen the inductive hypothesis.• Subtract a low-order term.Inductive hypothesis: T(k) ≤ c1k2 – c2k for k < n.

T(n) = 4T(n/2) + n= 4(c1(n/2)2 – c2(n/2)) + n= c1n2 – 2c2n + n= c1n2 – c2n – (c2n – n)≤ c1n2 – c2n if c2 ≥ 1.

Page 31: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.31

A tighter upper bound!IDEA: Strengthen the inductive hypothesis.• Subtract a low-order term.Inductive hypothesis: T(k) ≤ c1k2 – c2k for k < n.

T(n) = 4T(n/2) + n= 4(c1(n/2)2 – c2(n/2)) + n= c1n2 – 2c2n + n= c1n2 – c2n – (c2n – n)≤ c1n2 – c2n if c2 ≥ 1.

Pick c1 big enough to handle the initial conditions.

Page 32: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.32

Recursion-tree method

• A recursion tree models the costs (time) of a recursive execution of an algorithm.

• The recursion-tree method can be unreliable, just like any method that uses ellipses (…).

• The recursion-tree method promotes intuition, however.

• The recursion tree method is good for generating guesses for the substitution method.

Page 33: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.33

Example of recursion treeSolve T(n) = T(n/4) + T(n/2) + n2:

Page 34: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.34

Example of recursion treeSolve T(n) = T(n/4) + T(n/2) + n2:

T(n)

Page 35: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.35

Example of recursion treeSolve T(n) = T(n/4) + T(n/2) + n2:

T(n/4) T(n/2)

n2

Page 36: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.36

Example of recursion treeSolve T(n) = T(n/4) + T(n/2) + n2:

n2

(n/4)2 (n/2)2

T(n/16) T(n/8) T(n/8) T(n/4)

Page 37: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.37

Example of recursion treeSolve T(n) = T(n/4) + T(n/2) + n2:

n2

(n/16)2 (n/8)2 (n/8)2 (n/4)2

(n/4)2 (n/2)2

Θ(1)

Page 38: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.38

Example of recursion treeSolve T(n) = T(n/4) + T(n/2) + n2:

n2 2n

(n/16)2 (n/8)2 (n/8)2 (n/4)2

(n/4)2 (n/2)2

Θ(1)

Page 39: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.39

Example of recursion treeSolve T(n) = T(n/4) + T(n/2) + n2:

(n/16)2 (n/8)2 (n/8)2 (n/4)2

(n/4)2 (n/2)2

Θ(1)

2165 n

2nn2

Page 40: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.40

Example of recursion treeSolve T(n) = T(n/4) + T(n/2) + n2:

(n/16)2 (n/8)2 (n/8)2 (n/4)2

(n/4)2

Θ(1)

2165 n

2n

225625 n

n2

(n/2)2

Page 41: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.41

Example of recursion treeSolve T(n) = T(n/4) + T(n/2) + n2:

(n/16)2 (n/8)2 (n/8)2 (n/4)2

(n/4)2

Θ(1)

2165 n

2n

225625 n

( ) ( )( ) 1 31652

165

1652 L++++n

= Θ(n2)

Total =

n2

(n/2)2

geometric series

Page 42: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.42

The master method

The master method applies to recurrences of the form

T(n) = a T(n/b) + f (n) , where a ≥ 1, b > 1, and f is asymptotically positive.

Page 43: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.43

Three common casesCompare f (n) with nlogba:1. f (n) = O(nlogba – ε) for some constant ε > 0.

• f (n) grows polynomially slower than nlogba

(by an nε factor).Solution: T(n) = Θ(nlogba) .

Page 44: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.44

Three common casesCompare f (n) with nlogba:1. f (n) = O(nlogba – ε) for some constant ε > 0.

• f (n) grows polynomially slower than nlogba

(by an nε factor).Solution: T(n) = Θ(nlogba) .

2. f (n) = Θ(nlogba lgkn) for some constant k ≥ 0.• f (n) and nlogba grow at similar rates.Solution: T(n) = Θ(nlogba lgk+1n) .

Page 45: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.45

Three common cases (cont.)Compare f (n) with nlogba:

3. f (n) = Ω(nlogba + ε) for some constant ε > 0.• f (n) grows polynomially faster than nlogba (by

an nε factor),and f (n) satisfies the regularity condition that a f (n/b) ≤ c f (n) for some constant c < 1.Solution: T(n) = Θ( f (n)) .

Page 46: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.46

Examples

EX. T(n) = 4T(n/2) + na = 4, b = 2 ⇒ nlogba = n2; f (n) = n.CASE 1: f (n) = O(n2 – ε) for ε = 1.∴ T(n) = Θ(n2).

Page 47: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.47

Examples

EX. T(n) = 4T(n/2) + na = 4, b = 2 ⇒ nlogba = n2; f (n) = n.CASE 1: f (n) = O(n2 – ε) for ε = 1.∴ T(n) = Θ(n2).

EX. T(n) = 4T(n/2) + n2

a = 4, b = 2 ⇒ nlogba = n2; f (n) = n2.CASE 2: f (n) = Θ(n2lg0n), that is, k = 0.∴ T(n) = Θ(n2lg n).

Page 48: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.48

Examples

EX. T(n) = 4T(n/2) + n3

a = 4, b = 2 ⇒ nlogba = n2; f (n) = n3.CASE 3: f (n) = Ω(n2 + ε) for ε = 1and 4(n/2)3 ≤ cn3 (reg. cond.) for c = 1/2.∴ T(n) = Θ(n3).

Page 49: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.49

Examples

EX. T(n) = 4T(n/2) + n3

a = 4, b = 2 ⇒ nlogba = n2; f (n) = n3.CASE 3: f (n) = Ω(n2 + ε) for ε = 1and 4(n/2)3 ≤ cn3 (reg. cond.) for c = 1/2.∴ T(n) = Θ(n3).

EX. T(n) = 4T(n/2) + n2/lgna = 4, b = 2 ⇒ nlogba = n2; f (n) = n2/lgn.Master method does not apply. In particular, for every constant ε > 0, we have nε = ω(lgn).

Page 50: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.50

f (n/b)

Idea of master theoremRecursion tree:

f (n/b) f (n/b)

Τ (1)

…f (n) a

f (n/b2)f (n/b2) f (n/b2)…a

Page 51: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.51

f (n/b)

Idea of master theoremRecursion tree:

f (n/b) f (n/b)

Τ (1)

…f (n) a

f (n/b2)f (n/b2) f (n/b2)…a

f (n)

a f (n/b)

a2 f (n/b2)

Page 52: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.52

f (n/b)

Idea of master theorem

f (n/b) f (n/b)

Τ (1)

…Recursion tree:

…f (n) a

f (n/b2)f (n/b2) f (n/b2)…ah = logbn

f (n)

a f (n/b)

a2 f (n/b2)

Page 53: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.53

nlogbaΤ (1)

f (n/b)

Idea of master theorem

f (n/b) f (n/b)

Τ (1)

…Recursion tree:

…f (n) a

f (n/b2)f (n/b2) f (n/b2)…ah = logbn

f (n)

a f (n/b)

a2 f (n/b2)

#leaves = ah

= alogbn

= nlogba

Page 54: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.54

f (n/b)

Idea of master theoremRecursion tree:

f (n/b) f (n/b)

Τ (1)

…f (n) a

f (n/b2)f (n/b2) f (n/b2)…ah = logbn

f (n)

a f (n/b)

a2 f (n/b2)

CASE 1: The weight increases geometrically from the root to the leaves. The leaves hold a constant fraction of the total weight.

CASE 1: The weight increases geometrically from the root to the leaves. The leaves hold a constant fraction of the total weight.

Θ(nlogba)

nlogbaΤ (1)

Page 55: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.55

f (n/b)

Idea of master theoremRecursion tree:

f (n/b) f (n/b)

Τ (1)

…f (n) a

f (n/b2)f (n/b2) f (n/b2)…ah = logbn

f (n)

a f (n/b)

a2 f (n/b2)

CASE 2: (k = 0) The weight is approximately the same on each of the logbn levels.

CASE 2: (k = 0) The weight is approximately the same on each of the logbn levels.

Θ(nlogbalg n)

nlogbaΤ (1)

Page 56: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.56

f (n/b)

Idea of master theoremRecursion tree:

f (n/b) f (n/b)

Τ (1)

…f (n) a

f (n/b2)f (n/b2) f (n/b2)…ah = logbn

f (n)

a f (n/b)

a2 f (n/b2)

…CASE 3: The weight decreases geometrically from the root to the leaves. The root holds a constant fraction of the total weight.

CASE 3: The weight decreases geometrically from the root to the leaves. The root holds a constant fraction of the total weight.

nlogbaΤ (1)

Θ( f (n))

Page 57: mit 演算法 Lec2

September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.57

Appendix: geometric series

1

111

2x

xxxxn

n−

−=+++++

L for x ≠ 1

1

11 2x

xx−

=+++ L for |x| < 1

Return to last slide viewed.