本文主要是介绍求递归算法时间复杂性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
节点的单一子问题代价:函数执行过程中,除去递归调用以外的代价
递推方法
求n!的递归算法:
该算法的时间复杂性:
递推过程:
主定理方法
要求:a>=1,b>1
求解步骤:
f(n)的渐进上界是以n的log以b为底的e次幂
判断关系后一定要满足这三个对应规则
例题:
规则一:棋盘覆盖的时间复杂性
规则二:归并排序的时间复杂性
规则三:时间复杂性的递归定义
递归树方法
定义:对一个时间复杂性的算法进行迭代计算,然后求和
2
表示我们将一个问题分解为 2 个子问题
n/2
表示每个子问题的规模是原问题的 1/2
n
表示合并需要的额外计算时间
f(n)作为树的根节点,每一个子问题放在分支上
树中所有的值相加 = 算法时间复杂性
最后一层全都=1,假设一共k层,k=logn
这篇关于求递归算法时间复杂性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!