наилучшая временная сложность, чтобы проверить, является ли двоичное дерево avl-деревом (сбалансировано по высоте) - PullRequest
0 голосов
/ 30 апреля 2018

Итак, меня спросили в интервью, возможно ли, чтобы проверка, является ли дерево avl-деревом, могла бы быть: T (n) = O (log (n))

и не знал ответа, после поиска в Google лучшие алгоритмы, которые я видел, были O (n) ("https://www.geeksforgeeks.org/how-to-determine-if-a-binary-tree-is-balanced/")

это сделать алгоритм с O (log (n))?

1 Ответ

0 голосов
/ 30 апреля 2018

Ответ зависит немного. Если коэффициенты баланса явно хранятся в узлах, проверка баланса может быть выполнена за O(1) время путем считывания значения из корневого узла; поэтому предположим, что коэффициенты баланса не хранятся в явном виде.

Обратите внимание, что за O(log n) время невозможно прочитать весь ввод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...