递推方程的求解

先修知识

常见序列的求和公式

在这里插入图片描述

求和例子

在这里插入图片描述
上面的例子同等比数列的差别在于从首项的常数变成了未知数,利用2的巧妙拆分去求和,下面的例子里将会用到这一公式。

估计和式上界的放大法

在这里插入图片描述
在这里插入图片描述

二分检索算法的平均时间复杂度分析实例

二分检索算法伪代码表示
在这里插入图片描述


假设待检索数列T的长度为n,下面的左图表示x(待查找的数)在数列T中的各个位置,而右边则表示x不在数列中的各个情况。那么输入的所有情况便是两种的总和2n+1
在这里插入图片描述


对于上图的所有输入情况,每种情况的输入个数如下图所示,尤其值得注意的是比较k次的(因为上面假设了n同k的特殊关系)输入个数,后面的n+1便是上图中所有不在数列T中的情况。
那么总的输入次数便是对每个输入乘以次数并求和

在这里插入图片描述


总的输入次数除以总的输入情况便是我们的要求的平均时间复杂度。如果觉得理解有困难的话,你可以类比一下,上面各种情况的输入次数表示每个人各有的不等的苹果数量,而输入情况的总数便是人的数量,那我们要求每个人平均的苹果数便是如此求。
值得一提的是,虽然我们求的平均时间复杂度,却没有出现时间,因为我们这里求得是平均输入次数,那么自然也可以类似等价于平均时间复杂度。

在这里插入图片描述

递推方程的几种求法

迭代法

先引入例子
在这里插入图片描述
操作方法

  • 不断用递推方程的右部替代左部
  • 每次替代随着n的降低,在和式中多出至少一项
  • 直到出现初值则迭代停止
  • 将初值代入并用常用的序列求和进行求和
  • 可用数学归纳法验证解的正确性

换元迭代

利用二分归并排序来举例
在这里插入图片描述
读者可以尝试用不换元进行直接迭代,将会比较不直观。
因为问题的复杂度是成倍的减小的,但通过换元我们可以将其化简为类似问题复杂度-1的情况

在这里插入图片描述
下面是迭代的求解过程
在这里插入图片描述

差消法化简高阶递推方程

1. 采用快速排序的例子引入
在这里插入图片描述
2. 下面是输入的总的n种情况
在这里插入图片描述
3. 工作量总和
在这里插入图片描述
4. 那么快速排序的平均工作量如下,将会非常不好求。那么我们的目标是去化简中间的求和序列,考虑其能否转化成我们上面的递推式(只同问题规模-1的下一项相关而言)
在这里插入图片描述
5. 考虑等比数列的差消化简得方式
在这里插入图片描述
在这里插入图片描述
6. 利用上面常规得迭代求法,最后式子中得符号可以看我的另一篇文章关于函数渐近的界
在这里插入图片描述

递归树方法

递归树的概念

在这里插入图片描述

迭代在递归树中的表示方法

在这里插入图片描述
在这里插入图片描述

递归树的生成规则

在这里插入图片描述

递归树生成实例

在这里插入图片描述
在这里插入图片描述

生成的递归树

在这里插入图片描述

对递归树上的量求和

在这里插入图片描述

递归树的应用实例

在这里插入图片描述
在这里插入图片描述

主定理

主定理的应用背景

在这里插入图片描述

主定理概念

注:对下下面等式中的O符号等有疑问的,可以参考我的另一篇关于函数渐近的界的文章。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主定理证明过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主定理的应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不能使用主定理的例子

在这里插入图片描述
上面的反例我们可以采用递归树的方法去求解
在这里插入图片描述
在这里插入图片描述

文章的主体内容为北京大学屈婉玲老师的网课内容的整理

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值