Recursion 使用递归python的大o
我想知道这个递归的大O表示法(是n-1吗?)。谢谢 示例代码的递归关系为Recursion 使用递归python的大o,recursion,big-o,Recursion,Big O,我想知道这个递归的大O表示法(是n-1吗?)。谢谢 示例代码的递归关系为 T(n)=T(n-1)+c 当你把这个关系解为 def maxnum(l): if len(l)==1: return l[0] else: largest=maxnum(l[1:]) if l[0]>largest: return l[0] else: return largest 因此时
T(n)=T(n-1)+c
当你把这个关系解为
def maxnum(l):
if len(l)==1:
return l[0]
else:
largest=maxnum(l[1:])
if l[0]>largest:
return l[0]
else:
return largest
因此时间复杂度为TC=O(n*c)
等于O(n)示例代码的递归关系为
T(n)=T(n-1)+c
当你把这个关系解为
def maxnum(l):
if len(l)==1:
return l[0]
else:
largest=maxnum(l[1:])
if l[0]>largest:
return l[0]
else:
return largest
因此时间复杂度是TC=O(n*c)
等于O(n)不是
O(n-1)
,大oh忽略常数因子。那么对于10个元素,答案是9倍?什么?你的问题没有道理。“9次”是什么意思?这与Big-O有什么关系?大O是关于渐近的,最坏情况的行为,而不是计算你期望某个循环运行多少次……我的意思是,对于10个元素,最糟糕的情况是要计算9次?大Oh符号涉及找到渐近行为的上界。它不是O(n-1)
,大oh忽略常数因子。那么对于10个元素,答案是9倍?什么?你的问题没有道理。“9次”是什么意思?这与Big-O有什么关系?大O是关于渐近的,最坏情况的行为,而不是计算你期望某个循环运行多少次……我的意思是,对于10个元素,最糟糕的情况是要计算9次?大Oh符号关注的是找到渐近行为的上界。