Убедитесь, что вы go вернулись к определению большой тэты, отвечая на вопросы такого типа. Чтобы функция f
находилась в Θ(g(n))
функции g
, необходимо выполнить несколько условий:
- Существует константа k 1 , которая больше чем 0
- Существует константа k 2 , которая больше 0
- Существует некоторое начальное значение, n 0
- Для всех n> n 0 , k 1 * g (n) <= f (n) <= k <sub>2 * g (n)
(4) в основном означает, что с ростом f (n) k 1 * g (n) растет медленнее и k 2 * g (n) растет быстрее для того же n.
К счастью, взаимосвязь между этими функциями действительно легко увидеть, когда они изображены рядом друг с другом:)
Ниже мы видим все функции, изображенные рядом друг с другом:
- синий -
f(n)
- зеленый -
log n
- фиолетовый -
n
- черный цвет
n^2
- красный цвет
n^3
![all functions plotted](https://i.stack.imgur.com/ym5EF.png)
на основании этого графика мы могу я немедленно отбросить log n
, n
и n^3
, потому что нет двух констант , мы могли бы связать эти функции так, чтобы они росли таким образом, чтобы он связывал f(n)
с ростом n
,
n^2
однако выглядит многообещающе. Нам просто нужно найти две константы, которые позволяют n^2
ограничить рост f(n)
.
Ниже мы видим две такие константы:
- синий
f(n)
- зеленый
1 * n^2
- фиолетовый *
4 * n^2
![1*n^2 and 4*n^2 graphed alongside f(n)](https://i.stack.imgur.com/qMwuJ.png)
Найдя эти константы, мы можем однозначно сказать, что n^2 + n (log n)
есть Θ(n^2)