Base/Knowledges/IT/Структуры данных/Косые деревья (Splay tree).md
2026-02-23 19:52:05 +03:00

8 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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