Я рассчитываю, что моя сложность выполнения будет , что такое Big O обозначение этого?Big O обозначение константы
Например, если моя сложность выполнения является 4 + п то его Big O = О (п).
Я рассчитываю, что моя сложность выполнения будет , что такое Big O обозначение этого?Big O обозначение константы
Например, если моя сложность выполнения является 4 + п то его Big O = О (п).
Давайте посмотрим свободно в определении того, что мы подразумеваем под f(n) is in O(g(n))
:
f(n)
вO(g(n))
означает, чтоc · g(n)
является верхней границей наf(n)
. Таким образом, существует , существует константаc
, так чтоf(n) ≤ c · g(n)
для имеет достаточно большое значениеn
(т. Е.n ≥ n0
для некоторой константыn0
).
Вы можете рассматривать постоянную функцию так же, как любую другую функцию, w.r.t. анализируя его асимптотическое поведение с использованием, например, большой-O-обозначение.
f(n) = 4
g(n) = 1
f(n) ≤ c · g(n) = c · 1, for c ≥ 4 and for all n (*)
(*) with e.g. n0=0 and c=4 => f(n) is in O(1)
Примечание: в качестве Ctx отмечает в комментариях ниже, O(1)
(или, например, O(n)
) описывает набор функций, так, чтобы быть полностью правильным, f
должны быть описаны как в O(1)
(f ∈ O(n)
, f
: s установить членство в O(1)
), а не "f(n)
находящийся в O(1)
". Однако вы, вероятно, можете ожидать, что менее строгая версия «f(n)
находится в O(1)
» (или около O(g(n))
) так же часто в Интернете, по крайней мере за пределами научных статей.
Поймите это сейчас намного лучше, чем в лекции, спасибо – coders
Чтобы быть педантичным: f находится в O (1), так как O (1) - это набор функций – Ctx
@Ctx Вы правы, спасибо. Хотя это, возможно, путало бы меньше читателей с математикой, чтобы опустить аргументы функции, поэтому я просто проголосую за ваш комментарий и добавлю небольшую ссылку на него в ответ. Благодарю. – dfri
Постоянное время выполнения обычно обозначается как «O (1)», если это то, что вы имеете в виду. – Ctx