首页 > 解决方案 > 递归函数中嵌套循环的时间复杂度是多少?

问题描述

我有一个带有嵌套循环的递归函数。我正在寻找时间复杂度?这是功能

def csFirstUniqueChar(input_str,letter = 0,num = 1):
    if letter == len(input_str):
        return -1
    for x in range(len(input_str)): 
        if x == letter:
            continue
        if input_str[x] == input_str[letter]:
            num += 1
    if num == 1:
            return letter
    else:
        return csFirstUniqueChar(input_str,letter + 1,1)

标签: pythonalgorithmtime-complexitybig-o

解决方案


假设n是 的长度input_str。该算法可以n在最坏的情况下递归地迭代次数,即在每个递归调用letter中将增加1并且可以持续到n。在每次迭代中,最糟糕的情况是O(n)(完全运行循环)。因此,时间复杂度为O(n^2)


推荐阅读