这阵子在认真地看着算法导论,之前看到第四章计算分治法的时间复杂度的计算方法被称为“主方法”,运用这个主方法可以快速地口算出分治算法的递归式的时间复杂度,以下给出算法导论里关于主方法的描述吧,我就直接截图
不得不说,算法导论是一本非常偏向于数学的算法书,里面的对于各种算法结论的正确性大都有着严格的数学上的推导。之前对于主方法的描述只是大略地看了一下,看是看懂了,但是当时没有刻意将这个结论记下来,当我往后看遇到递归式求解部分的时候发觉还是忘记了主方法的求解过程,只能模糊记得部分而已
,昨天晚上再复习的时候,发觉这个描述可以不用带有让人烦恼的 ε ,我是采用了如下的记忆方法~
对于递归式 T(n) = a * T(n/b) + f(n);

本文介绍了如何用简化版的主方法来记忆计算分治算法时间复杂度的过程。通过设定f(n) = n^k,然后比较lna/lnb与k的大小,可以更直观地得出递归式T(n)的时间复杂度。举例说明了如何应用此方法解决T(n) = 9*T(n/3) + n的问题。
最低0.47元/天 解锁文章
6万+





