Если взять функцию:Big O с 2 переменные, которые размножаются вместе
def nested_multiplier(a, b):
"""
returns a*b
"""
count = 0
for i in range(a):
for j in range(b):
count += 1
return count
Это довольно ясно здесь, что сложность с точки зрения количества asignments собирается быть * б.
Хорошо, пока все хорошо.
Так что, если я хочу выработать Big O в терминах я полагаю, я должен учитывать, что функция имеет O (n), потому что в этом случае я должен рассматривать b как постоянное значение?
И одинаково, если я хочу большой O в терминах b, это будет O (n) по тем же причинам.
Это похоже на смысл, но интуитивно с вложенным блоком итераций, подобным этому, я ожидаю значение O (n^2) или другое значение экспоненциального типа. И это имеет смысл, если вы рассматриваете a и b в терминах того же значения (т. Е. Пусть a = 5 и пусть b = 5 будет 25 заданий).
Итак, каков правильный способ выразить сложность этой функции в нотации Big O?
Этот вопрос больше подходит для обмена столами компьютерной науки, но я также ответил. – atayenel