n
в O(n)
означает в точности размер ввода. Итак, если у меня есть этот код:
def findmax(l):
maybemax = 0
for i in l:
if i > maybemax:
maybemax = i
return maybemax
Тогда я бы сказал, что сложность равна O(n)
- сколько времени занимает пропорционально входному размеру (поскольку цикл повторяется столько раз, сколько длина l
).
Если бы у меня было
def allbigger(l, m):
for el in l:
for el2 in m:
if el < el2:
return False
return True
затем, в худшем случае (то есть когда я возвращаю True
), у меня есть один цикл длины len(l)
, а внутри него - один цикл длины len(m)
, поэтому я говорю, что это O(l * m)
или O(n^2)
если ожидается, что списки будут примерно одинаковой длины.