python递归算法的时间复杂度分析_[Python]递归算法时间复杂度

引言:时间复杂度的求解,在此都是以实例进行讲解,各位读者可以从中慢慢理解;以下所有的案例都是以Python语言编写!

案例一:求a的n次方

代码如下:

def exp1(a,n):

if n == 1:

return a

else:

return a*exp2(a,n-1)

分析:1、问题的规模是n;2、当规模为1是结束;3、假设T(n)表示规模为n的问题所需的步骤数;

求解:

T(n)=3+T(n-1)//注释:3表示一次循环中所做的操作数,一次是if的比较“==”,二次是递归中的n-1中的“-”,三次是a*exp1(a,n-1)中的“*”,规模每减少一次,就进行上述三次操作。

分解:T(n)=3+3+T(n-2)

=3+3+3+T(n-3)

......

=3*K+T(n-K)

当规模为1时返回结果,即n-K=1-》K=n-1,将K带入T(n)

T(n)=3(n-1)+T(1)=3n-3+2=3n-1//注释:T(1)时规模为1,进行了两次操作。

综上:上述程序时间复杂度为:O(n)

Python 的详细介绍:请点这里

Python 的下载地址:请点这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值