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