Понимание большого примечания O

Некоторые стандартные книги по Алгоритмам производят это:

0 ≤ f(n) ≤ c⋅g(n) for all n > n0

Определяя большой-O, кто-либо может объяснить мне, что это означает, используя сильный пример, который может помочь мне визуализировать и понять большой-O более точно?

1
nl ja de
Для отчета можно рассмотреть включая полное определение больших, О, в вопросе "Функцию f (n), имеет заказ в большей части g (n) - то есть, f (n) = O (g (n)) - если положительное вещественное число c и положительное целое число N существуют таким образом что f (n) <= c g (n) для всего n> = N. Таким образом, c g (n) - верхняя граница на f (n), когда n достаточно большой".
добавлено автор Sibi Rajasekaran, источник
У этого есть хороший пример в самом вопросе. stackoverflow.com/questions/2754718/…
добавлено автор Sibi Rajasekaran, источник
Вы пробовали Googling? Например. Википедия.
добавлено автор Thomas, источник

2 ответы

Предположите, что у вас есть функция f (n) , и вы пытаетесь классифицировать его - он большой O некоторой другой функции g (n) .

В определении в основном говорится, что f (n) находится в O (g (n)) , если там существует две константы C, N таким образом что

f(n) <= c * g(n) for each n > N

Теперь, давайте поймем то, что это означает.

Start with the n>N part - it means, we do not "care" for low values of n, we only care for high values, and if some (final number of) low values do not follow the criteria - we can silently ignore them by choosing N bigger then them.

Взгляните на следующий пример:

enter image description here

Though we can see that for low values of n: n^2 < 10nlog(n), the second quickly catches up and after N=10 we get that for all n>10 the claim 10nlog(n) < n^2 is correct, and thus 10nlog(n) is in O(n^2). The constant c means we can also tolerate some multiple by constant factor, and we can still accept it as desired behavior (useful for example to show that 5*n is O(n), because without it we could never find N such that for each n > N: 5n < n, but with the constant c, we can use c=6 and show 5n < 6n and get that 5n is in O(n).

2
добавлено

Этот вопрос - математическая проблема, не алгоритмическая.

You can find a definition and a good example here: https://math.stackexchange.com/questions/259063/big-o-interpretation

As @Thomas pointed out, Wikipedia also has a good article on this: http://en.wikipedia.org/wiki/Big_O_notation

Если вам нужно больше деталей, попытайтесь задать более конкретный вопрос.

0
добавлено
Это - больше комментария тогда ответ.
добавлено автор amit, источник