5 2 4 7 1 3 2 6

  • Slides: 44
Download presentation

5 2 4 7 1 3 2 6 Divide Conquer Combine 5 2 4

5 2 4 7 1 3 2 6 Divide Conquer Combine 5 2 4 7 Divide further, until… Divide Conquer

Maximum subarray

Maximum subarray

最大投资回报问题:暴力解法 下面的过程遍历的顺序为: (0, 0), (0, 1), …, (0, n-1); (1, 1), (1, 2), …,

最大投资回报问题:暴力解法 下面的过程遍历的顺序为: (0, 0), (0, 1), …, (0, n-1); (1, 1), (1, 2), …, (1, n-1), …… (n-2, n-2), (n-2, n-1), (n-1, n-1) Max. Sum = 0; for (i = 0; i < N; i++) { This. Sum = 0; for (j = i; j < N; j++) { This. Sum += A[j]; if (This. Sum > Max. Sum) Max. Sum = This. Sum; } } return Max. Sum; the sequence i=0 i=1 i=2 in O(n 2) j i=n-1

用分治法解最大子数组问题 Part 1 Part 2 the sub with largest sum may be in: Part

用分治法解最大子数组问题 Part 1 Part 2 the sub with largest sum may be in: Part 1 recursion Part 2 or: The largest is the result Part 1 Part 2

n

n

证明: n Giving g: N→R+, then Ο(g) is the set of f: N→R+, such

证明: n Giving g: N→R+, then Ο(g) is the set of f: N→R+, such that for some c R+ and some n 0 N, f(n) cg(n) for all n n 0. 1, 必须找到合适的c和n 0 2, 只能是用数学归纳法 C似乎已经找到, 但是n 0是什么?

T(n)=a. T(n/b)+f(n) a个 f(n/b) a个 K=3 a. T(n/b 3)+f(n/b 2) …… a. T(n/b 3)+f(n/b

T(n)=a. T(n/b)+f(n) a个 f(n/b) a个 K=3 a. T(n/b 3)+f(n/b 2) …… a. T(n/b 3)+f(n/b 2)

Using Master Theorem Polynomially larger / smaller ε必须存在!

Using Master Theorem Polynomially larger / smaller ε必须存在!

Master定理的条件有空隙 n T(n)=2 T(n/2)+nlgn q q a=2, b=2, logba=1, f(n)=nlgn We have f(n)= (n

Master定理的条件有空隙 n T(n)=2 T(n/2)+nlgn q q a=2, b=2, logba=1, f(n)=nlgn We have f(n)= (n 1), but no >0 satisfies f(n)= (n 1+ ), since lgn grows slower that n for any small positive . q So, case 3 doesn’t apply. q However, neither case 2 applies.