Scapegoat Tree
Версия от 12:50, 17 июня 2016; Kolchanov (обсуждение | вклад)
Scapegoat Tree — структура данных, представляющая собой частично сбалансированное дерево поиска (степень сбалансированности может быть настроена), такое что операции поиска, вставки и удаления работают за O(log n), при этом скорость одной операции может быть улучшена в ущерб другой.
Содержание
Идея
При работе необходимо поддерживать состояние сбалансированного дерева, иначе время работы операции поиска может превысить
. В Scapegoat Tree используется следующая идея: введем коэффициент , который показывает, насколько дерево может быть несбалансированным. Математически это выглядит следующим образом: ; ; , где и - размер левого и правого поддерева вершины .Если условие нарушается, запускается операция перебалансировки дерева. Заметим, что при
, деревом будет считаться даже линейная структура.
Свойства
ввв