Recursion 使用递归python的大o

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 因此时

我想知道这个递归的大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


因此时间复杂度为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符号关注的是找到渐近行为的上界。