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

Сценарии применения Splay Tree?

Вопрос 1: насколько я пониманию, сплей-деревья должны крайне эффективно работать с такими моделями запросов, которые имеют крайне горбатое нормальное распределение по запрашиваемым данным ?

Вопрос 2: И вот ещё, если дерево поиска (avl, r/b и т.д.), в отличие от обычного отсортированного массива, используется, когда помимо операции find(x), присутствуют операции модификации - insert(x), remove(x) и т.д., и нет никакого смысла использовать дерево поиска, если операции модификации отсутствуют(конструктор с данными для начальной инициализации не учитывается), но в случае сплей-дерева, как я понимаю, даже если не подразумевается модификация, всё равно выгоднее использовать его в противовес статичному отсортированному массиву, если конечно имеется нормальное распределение на find'ы с большим пиком ?
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Простой 14 комментариев
Пригласить эксперта
Ответы на вопрос 1
@KukarekusUltra
1) Нет, сплей дерево всегда работает за log n амортизировано. Его лучше использовать как временную структуру данных. То есть на серверах для поиска пользователей оно иногда будет долго работать (а это недопустимо), но в сумме быстро. Здесь написано, что такое амортизированный алгоритм https://ru.m.wikipedia.org/wiki/%D0%90%D0%BC%D0%BE...
2) Нет, отсортированный массив занимает меньше места и бинарный поиск происходит быстрее.

Так же если хотите ускорить двоичный поиск, то можно использовать интерполиционный поиск (е
это работает только для массивов) https://ru.m.wikipedia.org/wiki/%D0%98%D0%BD%D1%82...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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