递归函数中嵌套循环的时间复杂度是多少?

时间:2020-10-28 20:14:04

标签: python algorithm time-complexity big-o

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

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)

1 个答案:

答案 0 :(得分:1)

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