Algorithm 版 (精华区)

发信人: Lerry (第一次有失恋的感觉), 信区: Algorithm
标  题: 分治法的复杂性分析
发信站: 哈工大紫丁香 (2002年03月12日11:04:08 星期二), 站内信件

分治法的复杂性分析
从分治法的一般设计模式可以看出,用它设计出的程序一般是一个递归过程。因此,分
治法的计算效率通常可以用递归方程来进行分析。为方便起见,设分解阈值n0=1,且算
法ADHOC解规模为1的问题耗费1个单位时间。又设分治法将规模为n的问题分成k个规模为
n/m的子问题去解,而且,将原问题分解为k个子问题以及用算法MERGE将k个子问题的解
合并为原问题的解需用f(n)个单位时间。如果用T(n)表示该分治法Divide-and-Conquer
(P)解规模为|P|=n的问题P所需的计算时间,则有:
 (1)
用算法的复杂性中递归方程解的渐进阶的解法介绍的解递归方程的迭代法,可以求得(1
)的解:
 (2)
注意,递归方程(1)及其解(2)只给出n等于m的方幂时T(n)的值,但是如果认为T(n)足够
平滑,那么由等于m的方幂时T(n)的值可以估计T(n)的增长速度。通常,我们可以假定T
(n)是单调上升的,从而当mi≤n<mi+1时,T(mi)≤T(n)<T(mi+1)。
另一个需要注意的问题是,在分析分治法的计算效率时,通常得到的是递归不等式:
 (3)
由于我们关心的一般是最坏情况下的计算时间复杂度的上界,所以用等于号(=)还是小于
或等于号(≤)是没有本质区别的。

--
  不在乎天长地久,就怕你从来没有!

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 天外飞仙]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.260毫秒