<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=87.76.14.10&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=87.76.14.10&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/87.76.14.10"/>
		<updated>2026-05-17T21:35:56Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=65094</id>
		<title>Поисковые структуры данных</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=65094"/>
				<updated>2018-04-20T11:30:37Z</updated>
		
		<summary type="html">&lt;p&gt;87.76.14.10: правка окончаний&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Поисковая структура данных''' {{---}} любая структура данных реализующая эффективный поиск конкретных элементов множества, например, конкретной записи в базе данных.&lt;br /&gt;
&lt;br /&gt;
Простейшей, наиболее общей, но менее эффективной поисковой структурой является простая неупорядоченная последовательная всех элементов. Расположив элементы в такой список, неизбежно возникнет ряд операций, которые потребуют линейного времени, в худшем случае, а также в средней случае. Используемые в реальной жизни поисковые структуры данных позволяют совершать операции более быстро, однако они ограничены запросами некоторого конкретного вида. Кроме того, поскольку стоимость построение таких структур пропорциональна &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, их построение окупится, даже если поступает лишь несколько запросов.&lt;br /&gt;
&lt;br /&gt;
=== Тип ===&lt;br /&gt;
&lt;br /&gt;
'''Статические поисковые структуры данных''' (англ. ''Online search structures'') предназначены для ответа на запросы на фиксированной базе данных.&lt;br /&gt;
&lt;br /&gt;
'''Динамические поисковые структуры''' (англ. ''Offline search structures'') также позволяют вставки, удаления или модификации элементов между последовательными запросами. В динамическом случае, необходимо также учитывать стоимость изменения структуры данных. Любую динамическую структуру данных можно сделать статической, если запретить вставку и удаление. Также если множество ключей известно, то можно его заранее упорядочить так, чтобы избежать худших случаев в поисках в структурах данных.&lt;br /&gt;
&lt;br /&gt;
=== Время работы ===&lt;br /&gt;
&lt;br /&gt;
Эту классификацию обычно считают самой важной. Оценивают худшее время алгоритма, среднее и лучшее для каждой операции. Лучшее время {{---}} минимальное время работы алгоритма на каком-либо наборе. Худшее время {{---}} наибольшее время.&lt;br /&gt;
&lt;br /&gt;
=== Используемая память ===&lt;br /&gt;
&lt;br /&gt;
Параметр структуры данных, показывающий, сколько памяти ей требуется. Обычно затраты составляют &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Сравнение структур данных ===&lt;br /&gt;
&lt;br /&gt;
Сравним эффективность поисковых структур данных для реализации интерфейса [[Упорядоченное множество|упорядоченного множества]]. Время работы методов &amp;lt;tex&amp;gt;Predecessor&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;Successor&amp;lt;/tex&amp;gt; совпадает с временем работы &amp;lt;tex&amp;gt;Search&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; {{---}} количество хранимых чисел, каждое из которых представляется с помощью &amp;lt;tex&amp;gt;w&amp;lt;/tex&amp;gt; битов.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Insert&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Delete&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Search&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Память&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Описание&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background: #ddffdd;&amp;quot; | Среднее&lt;br /&gt;
! style=&amp;quot;background: #ffdddd;&amp;quot; | Худшее&lt;br /&gt;
! style=&amp;quot;background: #ddffdd;&amp;quot; | Среднее&lt;br /&gt;
! style=&amp;quot;background: #ffdddd;&amp;quot; | Худшее&lt;br /&gt;
! style=&amp;quot;background: #ddffdd;&amp;quot; | Среднее&lt;br /&gt;
! style=&amp;quot;background: #ffdddd;&amp;quot; | Худшее&lt;br /&gt;
! style=&amp;quot;background: #ddffdd;&amp;quot; | Среднее&lt;br /&gt;
! style=&amp;quot;background: #ffdddd;&amp;quot; | Худшее&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; align=&amp;quot;center&amp;quot; |  Динамические структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| Неотсортированный массив&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ddffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(1)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ddffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(1)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Наивная реализация, использующая [[Динамический массив|динамический массив]]. Добавление происходит в конец массива, а для поиска элемента просто проходим по всему массиву.&lt;br /&gt;
|-&lt;br /&gt;
| Отсортированный массив&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | То же самое, но теперь массив отсортирован. Поиск ускоряется за счёт возможности применить [[Целочисленный двоичный поиск|двоичный поиск]]. Вставка замедляется из-за необходимости поддерживать инвариант отсортированности.&lt;br /&gt;
|-&lt;br /&gt;
| Неотсортированный [[Список|список]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ddffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(1)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ddffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(1)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; rowspan=&amp;quot;2&amp;quot; | Аналогично массиву, но храним данные в [[Список|списке]].&lt;br /&gt;
|-&lt;br /&gt;
| Отсортированный [[Список|список]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ddffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(1)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Дерево поиска, наивная реализация]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Бинарное дерево поиска  обладает следующим свойством:  если &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; {{---}} узел бинарного дерева с ключом &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;, то все узлы в левом поддереве должны иметь ключи, меньшие &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;,  а в правом поддереве большие &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Рандомизированное бинарное дерево поиска]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Вариант [[Дерево поиска, наивная реализация|двоичного дерево поиска]] с добавлением инвариата &amp;quot;случайности&amp;quot;, что уменьнашает ожидаемую высоту дерева.&lt;br /&gt;
|-&lt;br /&gt;
|[[АВЛ-дерево]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Сбалансированное [[Дерево поиска, наивная реализация|двоичное дерево поиска]], в котором поддерживается следующее свойство: для каждой его вершины высота её двух поддеревьев различается не более чем на &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[2-3 дерево]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Структура данных, представляющая собой сбалансированное дерево поиска, такое что из каждого узла может выходить две или три ветви и глубина всех листьев одинакова. Является частным случаем [[B-дерево#B.2B-.D0.B4.D0.B5.D1.80.D0.B5.D0.B2.D0.BE|B+ дерева]].&lt;br /&gt;
|-&lt;br /&gt;
|[[B-дерево]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Cильноветвящееся сбалансированное дерево поиска, позволяющее проводить поиск, добавление и удаление элементов за &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;. B-дерево с &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; узлами имеет высоту &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;. Количество детей узлов может быть от нескольких до тысяч (обычно степень ветвления B-дерева определяется характеристиками устройства (дисков), на котором производится работа с деревом). В-деревья также могут использоваться для реализации многих операций над динамическими множествами за время &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[Красно-черное дерево]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Сбалансированное [[Дерево поиска, наивная реализация|двоичное дерево поиска]], в котором баланс осуществляется на основе &amp;quot;цвета&amp;quot; узла дерева, который принимает только два значения: &amp;quot;красный&amp;quot; (англ. ''red'') и &amp;quot;чёрный&amp;quot; (англ. ''black'').  При этом все листья дерева являются фиктивными и не содержат данных, но относятся к дереву и являются чёрными.&lt;br /&gt;
|-&lt;br /&gt;
| [[Декартово дерево]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Бинарное дерево, в узлах которого хранится пары &amp;lt;tex&amp;gt; (x,y) &amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; {{---}} это ключ, а &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt; {{---}} это приоритет. Также оно является [[Дерево поиска, наивная реализация|двоичным деревом поиска]] по &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; и [[Двоичная куча|пирамидой]] по &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt;. Предполагая, что все &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; и все &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt; являются различными, получаем, что если некоторый элемент дерева содержит &amp;lt;tex&amp;gt;(x_0,y_0)&amp;lt;/tex&amp;gt;, то у всех элементов в левом поддереве &amp;lt;tex&amp;gt;x &amp;lt; x_0&amp;lt;/tex&amp;gt;, у всех элементов в правом поддереве &amp;lt;tex&amp;gt; x &amp;gt; x_0&amp;lt;/tex&amp;gt;, а также и в левом, и в правом поддереве имеем: &amp;lt;tex&amp;gt; y &amp;lt; y_0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Splay-дерево]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Дерево поиска, наивная реализация|Двоичное дерево поиска]]. Оно позволяет находить быстрее те данные, которые использовались недавно, за счёт '''перемещения к корню''' (англ. ''Move to root''). Относится к разряду сливаемых деревьев. Сплей-дерево было придумано Робертом Тарьяном и Даниелем Слейтером в 1983 году.&lt;br /&gt;
|-&lt;br /&gt;
|[[Дерево ван Эмде Боаса]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(2^w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Cтруктура данных, представляющая собой [[Дерево поиска, наивная реализация|дерево поиска]], позволяющее хранить целые неотрицательные числа в интервале &amp;lt;tex&amp;gt;[0;2^w)&amp;lt;/tex&amp;gt; и осуществлять над ними все соответствующие дереву поиска операции. Проще говоря, данная структура позволяет хранить &amp;lt;tex&amp;gt;w&amp;lt;/tex&amp;gt;-битные числа.&lt;br /&gt;
Особенностью этой структуры является то, что все операции выполняются за &amp;lt;tex&amp;gt;O(\log w)&amp;lt;/tex&amp;gt;, что асимптотически лучше, чем &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt; в большинстве других деревьев поиска, где &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; {{---}} количество элементов в дереве.&lt;br /&gt;
|-&lt;br /&gt;
| [[Список с пропусками]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; &lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Вероятностная структура данных, основанная на нескольких отсортированных односвязных списках.&lt;br /&gt;
Отсортированный связный список является простейшей структурой с временем поиска &amp;lt;tex&amp;gt;\Theta(n)&amp;lt;/tex&amp;gt;. Добавление дополнительных уровней, обеспечивающих быстрый доступ через несколько элементов, помогает улучшить асимптотику до &amp;lt;tex&amp;gt;\Theta(\log(n))&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[Fusion tree]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log_{w} n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log_{w} n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log_{w} n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Дерево поиска, позволяющее хранить &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;w&amp;lt;/tex&amp;gt;-битных чисел, используя &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; памяти, и выполнять операции поиска за время &amp;lt;tex&amp;gt;O(\log_{w} n)&amp;lt;/tex&amp;gt;. Эта структура данных была впервые предложена в 1990 году М. Фредманом (M. Fredman) и Д. Уиллардом (D. Willard).&lt;br /&gt;
|-&lt;br /&gt;
| [[Сверхбыстрый цифровой бор|Цифровой бор]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n \cdot w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Бор]], в котором в качестве строк используются двоичные записи чисел, включая ведущие нули. Таким образом он имеет глубину &amp;lt;tex&amp;gt;w&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Сверхбыстрый цифровой бор|Быстрый цифровой бор]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(n \cdot w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Улучшеная версия структуры цифрового бора.&lt;br /&gt;
|-&lt;br /&gt;
| [[Сверхбыстрый цифровой бор]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffdddd;&amp;quot; | &amp;lt;tex&amp;gt;O(w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log w)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Улучшеная версия структуры быстрого цифрового бора.&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; align=&amp;quot;center&amp;quot; | Статические структуры данных&lt;br /&gt;
|-&lt;br /&gt;
|[[Tango-дерево]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #e5e5e5;&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #e5e5e5;&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ddffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(\log \log n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background: #ffffdd;&amp;quot; | &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Дерево поиска, наивная реализация|Двоичное дерево поиска]], которое изобрели Эрик Д. Демейн, Дион Хармон, Джон Яконо и Михаи Патраску в 2004 году. Не поддерживает операции вставки и удаления, но перестраивается по ходу поисковых запросов, чтобы отвечать на них как можно оптимальней. Это лучшая известная реализация на данный момент.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==См. также==&lt;br /&gt;
&lt;br /&gt;
*[[Сортировка]]&lt;br /&gt;
*[[Поиск подстроки в строке]]&lt;br /&gt;
*[[Приоритетные очереди]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
* [[wikipedia:en:Search_data_structure|Wikidedia {{---}} Search data structure]]&lt;br /&gt;
* [http://habrahabr.ru/post/188010/ Habrahabr {{---}} Знай сложности алгоритмов ]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Деревья поиска]]&lt;br /&gt;
[[Категория: Структуры данных]]&lt;/div&gt;</summary>
		<author><name>87.76.14.10</name></author>	</entry>

	</feed>