Как найти время исполнения в наихудшем случае, используя О-большое?
Какое значение выведет следующая функция?
Ответ должен быть в форме функции числа n.
Найдите время исполнения в наихудшем случае, используя О-большое.Функция на python:
def F(n): r = 0 for i in range(1, n + 1): for j in range(i + 1, n + 1): for k in range(i + j - 1, n + 1): r += 1 return r
Я пытался выразить это всё через Σ, однако в некоторых случаях i - j + 1 может быть больше, чем n, из-за этого всё моё решение рушится. У меня была идея в таком случае записать выражение Σᵢ₌₁ⁿ Σⱼ₌ᵢ₊₁ⁿ ((n - i - j + 2) / 2 + |n - i - j + 2| / 2), что брало бы максимум между нулём и n - i - j + 2, однако я не представляю как работать с этим модулем в сумме.
Вот что у меня получилось в первом решении без учёта того, что n - i - j + 2 может быть < 0, если это вдруг как-то поможет: r = (n^2 - n) / 2