主定理分析

递归树法:https://blog.csdn.net/qq_28382071/article/details/80252203

代换法:https://blog.csdn.net/qq_28382071/article/details/81058407

1. 问题

Karatsuba 大整数的快速乘积算法的运行时间(时间复杂度的递推关系式)为 T(n)=O(n)+4⋅T(n/2)T(n)=O(n)+4⋅T(n/2),求其最终的时间复杂度。

2. 主定理的内容


这里写图片描述

3. 分析

所以根据主定理的判别方法,可知对于 T(n)=O(n)+4⋅T(n/2)T(n)=O(n)+4⋅T(n/2),a=4,b=2a=4,b=2,则 f(n)=O(n)<nlogab=2f(n)=O(n)<nlogba=2,符合第一个判别式,因此,T(n)=O(n2)

这种形式的条件显然不符合主定理的口味,但是我们可以简单的通过递归树加上一点点的数学分析可知,总共有n层,每层都是n的代价,所以总代价应该是O(n2)

而对于某些式子,如上面所说,看着似乎可以用MM求解,但是实际上不满足3条中的任何一条,比如下面的:

猜你喜欢

转载自blog.csdn.net/liudongdong19/article/details/82979327