Возникла путаница с вычислением сложности Big OPython

Программы на Python
Anonymous
Возникла путаница с вычислением сложности Big O

Сообщение Anonymous »

Недавно я начал изучать структуры данных на Python

Код: Выделить всё

list_ = [6, 4, 3, 2, 1, 7]
expected_sum_result = 9

def two_pair_sum_using_complement(array, expected_sum):
unique_numbers = set()  #set
for num in array:
if num in unique_numbers:
return True
unique_numbers.add(expected_sum - num)
print(unique_numbers)
return False

print(
two_pair_sum_using_complement(array=list_, expected_sum=expected_sum_result))
В приведенном выше коде вы можете просто сказать, что БОЛЬШОЕ O равно O(n), но у меня есть сомнения в том, что я использовал if num в операторе unique_numbers in, чтобы получить O(n) сложности, и я сослался на этот сайт https://wiki.python.org/moin/TimeComplexity и приложил скриншот.
Итак, могу ли я считать, что у меня есть цикл FOR, который равен O(n), и у меня есть оператор in, который имеет O(n) внутри цикла FOR, поэтому сложность равна O(n^2)?
I' Я пробовал использовать некоторые веб-сайты и искусственный интеллект, но мне трудно в этом разобраться.

Подробнее здесь: https://stackoverflow.com/questions/781 ... complexity

Вернуться в «Python»