Задать вопрос
hoxnox
@hoxnox

Какой самый эффективный алгоритм добавления элемента в дерево?

Имеется входящая возрастающая последовательность (каждый следующий элемент строго больше предыдущего). Необходимо добавлять элементы последовательности в дерево таким образом, чтобы оно оставалось сбаланисрованным. Какой наиболее эффективный алгоритм?
  • Вопрос задан
  • 3063 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
vgrichina
@vgrichina
По идее в таком случае просто нет смысла использовать дерево, эффективнее будет динамически растущий массив с бинарным поиском по нему.

Еще если сначала сохранить последовательность в массив, то можно потом из нее построить сбалансированное бинарное дерево за O(N), просто обойдя массив рекурсивно в правильном порядке.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Ну, например, можно использовать декартовы деревья, если ключи отсортированы, то мы их все за линейное время можем запихнуть. Но, как выше замечено, смысла в этом немного — бинарный поиск всех спасет.
Ответ написан
sgzmd
@sgzmd
В любом случае ты получишь O(N log N) так что AVL.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы