算法的时间复杂度分析

用增长的阶表示算法运行的效率

五种阶函数

同阶

在这里插入图片描述

低阶

在这里插入图片描述

高阶

在这里插入图片描述

严格低阶

在这里插入图片描述

严格高阶

在这里插入图片描述
注:非所有函数都可比

和式估计:分析代码运行时间

调和级数

在这里插入图片描述

放缩法

利用前后项之比小于常数放缩

在这里插入图片描述

积分近似法

在这里插入图片描述

两个错误的证明

在这里插入图片描述
这里偷换了概念,注意在使用数学归纳法时,假设m=n时 ∃ n 0 , c s t . n > = n 0 、 s u m k = 1 n < = c n \exists n_0,c st . n >=n_0 、sum_{k=1}^{n}<=cn n0,cst.n>=n0sumk=1n<=cn证明当m=n+1时 ∃ n 1 , s t . n > = n 1 , ∑ k = 1 n + 1 k < = c n \exists n_1 ,st . n>=n_1,\sum_{k=1}^{n+1} k<=cn n1,st.n>=n1,k=1n+1k<=cn,而这里显然不满足,而是把c变成了c1,但c在n增长的时候是不能变的
下面同理
在这里插入图片描述

递归方程的三种解法

替换法

思路:先猜测一个解,然后用第二数学归纳法证明
扩展边界条件:指n=1,2…时直接算出T(n),n>k时用大O阶

*换元法:括号里面有根号

在这里插入图片描述

*放缩再换元再夹逼

T ( n ) = T ( n / 2 + √ n ) + √ 6046 T(n)=T(n/2+√n)+√6046 T(n)=T(n/2+n)+6046
在这里插入图片描述

递归树法

实际上就是图形化的求和
在这里插入图片描述

主定理

在这里插入图片描述
注意主定理的使用条件:
在这里插入图片描述

主定理的证明(递归树法)
  1. 首先对于所有n利用递归树可以证明在这里插入图片描述

  2. 其次对于n为b的幂有
    在这里插入图片描述

  3. 最后通过扩展主递归式中使用向下取整和向上取整的情况
    在这里插入图片描述
    加了取整函数后的递归树
    在这里插入图片描述

适用性更强的Akra-buzzi定理

用于 f ( n ) 和 n lg ⁡ b a f(n)和n^{\lg_b a} f(n)nlgba不能用n的多项式来比较的情况
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值