for i in range(len(a)):
Результатом будет длина a
, умноженная на среднее время для любого индекса в range(len(a))
(давайте пока проигнорируем break
).
if a[i] == 0 or a[i] == 1:
Два доступа к значениям a
, поэтому давайте добавим 2 * [time to retrieve a[i]]
. Вероятность того, что значение a
(элемент бесконечного множества, ℕ) является элементом любого конечного множества (такого как {0,1}), бесконечно близка к нулю. Поскольку дальнейший код внутри занимает конечное время, мы можем спокойно его игнорировать.
Средняя сложность случая: 2 len(a) [time to retrieve a[i]]
∈ Θ(len(a))
⊂ O(len(a))
.