算法设计与分析——分治递推关系的解

本节主要研究一些专门用来求解最常见的分治递推式的技巧。(代入法、更换变元法暂且不记录)

1、展开递推式

求解递推式的最自然方法就是通过显而易见的方式将其反复展开。

(1)、例子

image.png

image.png

O(n)取法:①忽略低阶项 ②舍最高项常系数 ③剩余估计

本例中,O(n)=nlog2 n

(2)、定理

由上例f(n)可得以下定理

image.png

(3)、引理

对于不同的f(n),我们可以得出不同的递推式

image.png

以上引理证明如下:

image.png

image.png

(4)、推论

由上述引理,我们可以得出以下两个推论

image.png

image.png

(5)、最重要的定理

背下该定理对于后期解题有很大帮助!

image.png

2、例题

(1)、例一

image.png

(a)

image.png

(b)

由master定理,a=4,c=2

显然,f(n)=O(n2),与展开递推式所得一致。

(2)、例二

image.png

(a)

求解法与例一一致。

(b)

由master定理,a=5,c=3

显然,f(n)=O(nlog35)。

(3)、例三

image.png

(a)

求解法与例一几乎一致。

(b)

由master定理,a=9,c=3,x=2

显然,f(n)=O(n2 log n)

原文地址:https://www.cnblogs.com/wangzheming35/p/15724667.html