计算递归算法时间复杂度通用公式

本文介绍了计算递归算法时间复杂度的一种方法——递归树,并通过高中数列通项公式类比,详细解析了递归方程的求解过程。针对不同情况,如公比为1或不为1,以及k是否为0,给出了时间复杂度的通用公式。以归并排序为例,展示了如何应用这些公式求解实际问题,得出其时间复杂度为n*logn。
摘要由CSDN通过智能技术生成

最近看《算法导论》公开课视频,虽然本科没有学过此类课程,但也能感觉得出来教学水平高于母校,在此就吐槽这一句,进入正题。

第一二课讲到一种分析递归算法的时间复杂度的方法——递归树。长期处于学习技术阶段没有科研导致数学水平直线下降,为了看懂课程不得不捡回一点数学的基础知识。递归算法时间复杂度的计算可以类比于高中时期数列的通项公式计算,虽然曾经基本看到什么类型的题目就知道套用什么公式,现在全忘了,说多了都是泪。但是递归算法时间复杂度的计算又有别于数列通项公式的计算,高中套用的那些公式不符合这种情况。下面介绍具体方法。

对于一个递归算法,首先我们可以分析得出其中一个递归方程:

我们直接考虑一般情况,当h(n)的时间复杂度为时,假设h(n)=,下面对公式进行递归树的展开。

计算时间复杂度就是将构建的递归树的所有节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值