1. 程式人生 > 其它 >演算法設計與分析——分治遞推關係的解

演算法設計與分析——分治遞推關係的解

分治遞推關係的解

本節主要研究一些專門用來求解最常見的分治遞推式的技巧。(代入法、更換變元法暫且不記錄)

1、展開遞推式

求解遞推式的最自然方法就是通過顯而易見的方式將其反覆展開。

(1)、例子

O(n)取法:①忽略低階項 ②舍最高項常係數 ③剩餘估計

本例中,O(n)=nlog2 n

(2)、定理

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

(3)、引理

對於不同的f(n),我們可以得出不同的遞推式

以上引理證明如下:

(4)、推論

由上述引理,我們可以得出以下兩個推論

(5)、最重要的定理

背下該定理對於後期解題有很大幫助!

2、例題

(1)、例一

(a)

(b)

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

顯然,f(n)=O(n2

),與展開遞推式所得一致。

(2)、例二

(a)

求解法與例一一致。

(b)

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

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

(3)、例三

(a)

求解法與例一幾乎一致。

(b)

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

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