最近搜索
暂无搜索记录
热搜
JAVA
大数据
分布式
Python
人工智能
爬虫
WEB
JavaScript
认证

最后一个logN默认是以2为底
递归求最大值的表达式

求最大值 左侧范围:N/3 右侧范围:2N/3
求最大值 左侧范围:N2/3 右侧范围:2N/3

求最大值 左侧范围:N/2 右侧范围:N/2 最后返回之前打印一遍范围上的值 除了递归调用的行为又进行了打印 O(N)

子问题的规模一致那么就可以通过master公式估计时间复杂度,如果子问题的规模不一致就不能通过master来估计时间复杂度,这种情况就必须用纯数学的方式,渐近线的方式来估计时间复杂度;
子问题规模不一致举例:T(N/3) + T(2N/3)这种方式 两个子问题规模 N/3!=2N/3,所以这时候就不能采用master公式的方式来估计时间复杂度;
T(N)=2*T(N/2) 这种子问题的规模都是N/2,是可以采用master公式的 前面满足 后面也要满足 O(N^d) 只要公式满足这个形式:
那么时间复杂度就可以按照下面的方式来估计:

我们要去确定具体的a,b,d然后直接带入公式复杂度直接确定:



Master公式只用看递归一层的行为是什么样子,然后写出算式,找到a b d 直接确认复杂度
Hainui