Обозначение Big O на некоторых примерах
Профессор дал нам несколько примеров, которые можно попробовать дома, но никогда не давал нам ответов, и теперь, когда я готовлюсь к экзаменам, мне бы очень хотелось подробнее остановиться на этом. У нас есть 3 "алгоритма", и мы должны выработать большую цифру для этих алгоритмов.
1-й:
sum <- 0
for i=1 to N do
for j=1 to i do
sum = sum + 1
Поскольку циклы for очень похожи на циклы пузырьковой сортировки, я пришел к выводу, что это O (n ^ 2).
2-й пример:
sum <- 0
for i=1 to N do
for j=1 to i*i do
for k=1 to j do
sum = sum + 1
Я оценил это должно быть O (n ^ 5).
3-й пример:
sum <- 0
for i=1 to N do
for j=1 to i*i do
if j mod i = 0 then
for k=1 to j do
sum = sum + 1
Я думаю, что это будет O(n^4), потому что третий внутренний цикл будет работать только Ni вместо N i * i. Любые комментарии приветствуются. Заранее спасибо.