递归算法时间复杂度详解,python的时间复杂度
本文主要介绍Python递归的时间复杂度,一般认为是O(logn),但递归算法的时间复杂度本质上取决于递归的次数和每次递归的运算次数。下面文章详细介绍,有需要的朋友可以参考一下。
00-1010思路一:for循环思路二:递归递归也是常用算法之一,其时间复杂度一般认为是O(logn),但递归算法的时间复杂度本质上取决于3360次递归的次数*每次递归的运算次数。
求举例面试题:.的n次方
目录
定义x_n(x,n):
时间复杂度O(n)
如果n==0:
返回1
返回x*x_n(x,n-1)
if __name__==__main__:
print(x_n(2,0))
print(x_n(2,3))
print(x_n(2,4))
思路一:for循环
但是递归时间复杂度不一定更好,
比如:
定义x_n(x,n):
时间复杂度O(n)
如果n==0:
返回1
返回x*x_n(x,n-1)
if __name__==__main__:
print(x_n(2,0))
print(x_n(2,3))
print(x_n(2,4))
也可以是:
定义x_n(x,n):
时间复杂度O(n)
如果n==0:
返回1
如果n%2==1:
返回x*x_n(x,n//2)*x_n(x,n//2)
else:
返回x_n(x,n//2)*x_n(x,n//2)
if __name__==__main__:
print(x_n(2,0))
print(x_n(2,3))
print(x_n(2,4))
如果面试官问还能不能优化?递归模块提取思维方向。
定义x_n(x,n):
时间复杂度O(logn)
如果n==0:
返回1
t=x_n(x,n//2)
#打印( t: ,t)
如果n%2==1:
返回x*t*t
返回t*t
if __name__==__main__:
print(x_n(2,0))
print(x_n(2,3))
print(x_n(2,4))
这就是关于Python递归时间复杂度的文章。更多相关Python递归内容,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。