我有以下代码检查整数数组v
中三个位置的和是否等于给定的数字x
。
def triplet(array, sum):
array_size = len(array) # 1
for i in range( 0, array_size-2):
for j in range(i + 1, array_size-1):
for k in range(j + 1, array_size):
if array[i] + array[j] + array[k] == sum:
return True # 1
return False # 1
代码内的嵌套循环的时间复杂度以及最坏情况下的复杂度是多少?据我了解,整个函数的最坏情况复杂度为O(n ^ 3),因为该函数需要对输入数据中的每个值执行线性时间运算。那是对的吗?
我已将具有恒定复杂性的行注释为# 1
。其他单个for
循环以及最后一个if
循环中的for
条件的时间复杂度是多少?