Не совсем. Прежде всего, n
не является фиксированным значением, поэтому O (n) не имеет смысла. Давайте для этого примем заданное значение M
, заменив первые две строки:
def linear_example (l, M):
n = M
Код в цикле for
выполняется за O (1) время, при условии, что каждый элемент i
из l
имеет конечное ограниченное время печати. Однако цикл повторяется len(l)
раз, поэтому сложность цикла составляет O (len (l)) .
Теперь этот цикл выполняется один раз полностью * через 1019 * для каждого значения n
в цикле while
, всего M
раз. Следовательно, сложность составляет произведение сложностей петли: O (M * len (l)) .