我有一个带嵌套循环的递归函数。我在寻找时间复杂度是多少?这是功能
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)
答案 0 :(得分:1)
假设n
是input_str
的长度。在最坏的情况下,该算法可以递归地迭代n
次,即,在每个递归调用中,letter
都会增加1
,并且可以持续到n
。在每次迭代中,最糟糕的情况是O(n)
(完全运行循环)。因此,时间复杂度为O(n^2)
。