1.
Сложность для A (N) составляет [O (1) + O (n) + O (n)] -> O (n ^ 2)
Это не правильно.Ну, часть O (n ^ 2) верна, но то, как вы к ней пришли, не соответствует действительности.
[O (1) + O (n) + O (n)] -> O (2n +)1) -> O (n)
Однако ваш код:
[O (k) + O (n) * O (n)] -> O (n^ 2 + k) -> O (n ^ 2)
, где k - это константа (в данном случае 26, но это не имеет значения, если на нее не влияет n).Вы умножаете вещи, которые так вложены.Вы можете упростить O (k) до O (1), если хотите.В любом случае это уходит.
2.
Сложность для A2 (N): [O (1) + O (n)] -> O (n)
О, боже.Я даже не уверен, с чего начать.
Итак, в основном вы получаете доступ к случайной части массива длиной N
.И вы проверяете, равно ли это 0. Если это так, вы делаете некоторые вещи и присваиваете их 1. 1. 1030 *
Я склонен полагать, что ответ на это будет значительно выше, чем O (n) насредний.Кто-то, у кого было больше опыта в кофе и / или математике, вероятно, должен будет вмешаться в это, но вы собираетесь пройти по крайней мере n раз, и В МИРЕ этот цикл будет бесконечным, потому что вы делаете произвольный доступ и можете просто сохранитьслучайным образом проверяя число, равное 1. Обычно вы делаете запись O (), используя WORST, поэтому этот цикл имеет вид
O (бесконечность) -> undefined
3.
Сложность для A3 (N) составляет [O (1) + O (n) + O (n)] -> O (n ^ 2)
Asкак было сказано ранее, это равно [O (1) + O (n) + O (n)], но это дает O (n)