首页 > 编程知识 正文

递归算法的时间复杂度怎么算,递归算法c语言

时间:2023-05-04 02:27:00 阅读:140323 作者:2559

引言:时间复杂度的解决,这里都用实例说明,读者可以从中慢慢理解; 以下所有案例都是用Python语言写的!

情形1 :求a的n次幂

代码如下。

defexp1(a,n ) :

if n==1:

return a

else:

returna*exp2(a,n-1 ) ) ) ) )。

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

解决方案:

t(n )=3t(n-1 ) /注释: 3表示在一次循环中进行的操作数,一次是if的比较)==),两次是n-1在递归中的(-),三次是a*exp1(a,n-1 )

分解: t(n )=3) 3t ) n-2 ) ) ) )。

=333t(n-3 ) )。

.

=3*kt(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,进行了两次操作。

总结以上内容,上述程序时间复杂度为o(n )

Python详细介绍:单击此处

Python下载地址:单击此处

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。