1.9 KiB
#структура_данных #todo
Косые деревья представляют другой подход к сбалансированным деревьям BST. Их свойство в том, что если вы недавно искали какой-то элемент, то следующий его поиск будет быстрее
Когда вы ищете узел в косом дереве, он становится новым корнем, так что при повторном поиске он будет найден сразу же. В общем случае узлы, которые вы недавно искали, группируются в начале и находятся быстрее. С другой стороны, дерево заведомо не будет сбалансировано, а значит, некоторые операции поиска будут занимать время, большее O(log(n)), и даже достигать линейного времени! Кроме того, при выполнении поиска вам, возможно, придется повернуть узел до корневой позиции, если он еще не корневой, а это тоже требует времени.
Но нас устраивает, что дерево не будет сбалансировано постоянно. Главное, что при проведении n операций поиска общее время O(n*log(n)) гарантировано —то есть O(log(n)) на один поиск. Таким образом, хотя один поиск может занять время, превышающее O(log(n)), в среднем все операции поиска сходятся ко времени O(log(n)), а наша цель как раз и есть ускорение поиска.