<?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=89.163.5.56&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=89.163.5.56&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/89.163.5.56"/>
		<updated>2026-06-13T09:24:48Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80&amp;diff=31854</id>
		<title>Линейный оператор</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80&amp;diff=31854"/>
				<updated>2013-06-11T17:48:55Z</updated>
		
		<summary type="html">&lt;p&gt;89.163.5.56: /* Линейный оператор проектирования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition=Пусть &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;F&amp;lt;/tex&amp;gt;. Отображение &amp;lt;tex&amp;gt;A:X \rightarrow Y&amp;lt;/tex&amp;gt; называется линейным оператором, если &amp;lt;tex&amp;gt;\forall x_1,x_2 \in X&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;\forall \lambda \in F&amp;lt;/tex&amp;gt;:&lt;br /&gt;
* &amp;lt;tex&amp;gt;A(x_1+x_2)=A(x_1)+A(x_2)&amp;lt;/tex&amp;gt;&lt;br /&gt;
* &amp;lt;tex&amp;gt;A(\lambda \cdot x_1) = \lambda \cdot A(x_1)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
NB: Гомоморфизм&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=Линейный оператор &amp;lt;tex&amp;gt;A:X \rightarrow X&amp;lt;/tex&amp;gt; называется автоморфизмом.&lt;br /&gt;
}}&lt;br /&gt;
NB: &amp;lt;tex&amp;gt;A(x) = Ax&amp;lt;/tex&amp;gt;&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&amp;lt;tex&amp;gt;A,B:X \rightarrow Y&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;A=B&amp;lt;/tex&amp;gt;, если &amp;lt;tex&amp;gt;\forall x \in X:Ax = Bx&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&amp;lt;tex&amp;gt;O&amp;lt;/tex&amp;gt; называется нулевым оператором, если &amp;lt;tex&amp;gt;\forall x \in X:Ox=Oy&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== Примеры ==&lt;br /&gt;
=== Тождественный оператор ===&lt;br /&gt;
&amp;lt;tex&amp;gt;I:X \rightarrow X&amp;lt;/tex&amp;gt;  по формуле &amp;lt;tex&amp;gt;Ix=x&amp;lt;/tex&amp;gt;&lt;br /&gt;
=== Линейный оператор проектирования ===&lt;br /&gt;
&amp;lt;tex&amp;gt;X=L1 + L2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;P_{L_1}^{||L_2}:X \rightarrow L_1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;P_{L_2}^{||L1}:X \rightarrow L_2&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: &amp;lt;tex&amp;gt;P_{L_{1,2}}^{||L_{2,1}}:X \rightarrow X&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;L_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;L_2&amp;lt;/tex&amp;gt; - п.п. &amp;lt;tex&amp;gt;X&amp;lt;/tex&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== Оператор дифференцирования ===&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;X=P_n; D:P_n \rightarrow P_{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
по формуле &amp;lt;tex&amp;gt;(Dp)(t)={dp(t) \over dt} = p^{'}(t)&amp;lt;/tex&amp;gt;&lt;br /&gt;
=== Интегральный оператор ===&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;X=C(a,b)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;K(s,t)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;s \in (a,b)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&amp;lt;tex&amp;gt;t \in (a,b)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;(Bf)(s) = integral_a^b K(s,t) \cdot f(t) \ cdot dt&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;B:C(a,b) \rightarrow C(a,b)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Матрица линейного оператора ==&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;A:X-&amp;gt;Y&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть п.п. &amp;lt;tex&amp;gt;X \leftarrow \{e_k\}_{k=1}^n, dim X=n&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть п.п. &amp;lt;tex&amp;gt;Y \leftarrow \{h_i\}_{i=1}^m, dim Y = m&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;m != n&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;Ae_k=\displaystyle \sum_{i=1}^m \alpha_k^i \cdot h_i = A=||\alpha_k^i||(k=1,...,n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;&lt;br /&gt;
A=&lt;br /&gt;
\begin{pmatrix}&lt;br /&gt;
\alpha_1^1 &amp;amp; \cdots &amp;amp; \alpha_n^1 \\&lt;br /&gt;
\alpha_1^2 &amp;amp; \cdots &amp;amp; \alpha_n^2 \\&lt;br /&gt;
\cdots &amp;amp; \cdots &amp;amp; \cdots \\&lt;br /&gt;
\alpha_1^m &amp;amp; \cdots &amp;amp; \alpha_n^m \\&lt;br /&gt;
\end{pmatrix}&lt;br /&gt;
&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
=== Нулевой оператор ===&lt;br /&gt;
&amp;lt;tex&amp;gt;&lt;br /&gt;
O_{[m \ times n]}=&lt;br /&gt;
\begin{pmatrix}&lt;br /&gt;
0 &amp;amp; \cdots &amp;amp; 0 \\&lt;br /&gt;
\cdots &amp;amp; \cdots &amp;amp; \cdots \\&lt;br /&gt;
0 &amp;amp; \cdots &amp;amp; 0 \\&lt;br /&gt;
\end{pmatrix}&lt;br /&gt;
&amp;lt;/tex&amp;gt;&lt;br /&gt;
=== Оператор дифференцирования ===&lt;br /&gt;
&amp;lt;tex&amp;gt;D:P_n \rightarrow P_{n-1}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\{1,t,t^2,...,t^n\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;&lt;br /&gt;
D=&lt;br /&gt;
\begin{pmatrix}&lt;br /&gt;
0 &amp;amp; 1 &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 \\&lt;br /&gt;
0 &amp;amp; 0 &amp;amp; 2 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 \\&lt;br /&gt;
0 &amp;amp; 0 &amp;amp; 0 &amp;amp; 3 &amp;amp;\cdots &amp;amp; 0 \\&lt;br /&gt;
\cdots &amp;amp; \cdots &amp;amp; \cdots &amp;amp; \cdots &amp;amp;\cdots &amp;amp; \cdots \\&lt;br /&gt;
0 &amp;amp; 0 &amp;amp; 0 &amp;amp; 0 &amp;amp;\cdots &amp;amp; n \\&lt;br /&gt;
0 &amp;amp; 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 \\&lt;br /&gt;
\end{pmatrix}&lt;br /&gt;
&amp;lt;/tex&amp;gt;&lt;/div&gt;</summary>
		<author><name>89.163.5.56</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B5%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D0%B2%D0%BE_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE&amp;diff=20487</id>
		<title>Декартово дерево</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%B5%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D0%B2%D0%BE_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE&amp;diff=20487"/>
				<updated>2012-04-11T11:06:44Z</updated>
		
		<summary type="html">&lt;p&gt;89.163.5.56: /* Реализация №1: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Эта статья про Курево''&lt;br /&gt;
&lt;br /&gt;
'''Декартово дерево''' {{---}} это структура данных, объединяющая в себе бинарное дерево поиска и бинарную кучу (отсюда и второе её название: &amp;lt;tex&amp;gt;treap (tree+heap)&amp;lt;/tex&amp;gt; и дерамида (дерево+пирамида), так же существует название курево (куча + дерево).&lt;br /&gt;
&lt;br /&gt;
Более строго, это структура данных, которая хранит пары &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_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;
Дерамиды были предложены Сиделем (Siedel) и Арагоном (Aragon) в 1996 г.&lt;br /&gt;
&lt;br /&gt;
== Операция split ==&lt;br /&gt;
[[file:split.png|thumb|400px|Операция split]]&lt;br /&gt;
&lt;br /&gt;
Операция &amp;lt;tex&amp;gt;\mathrm{split}&amp;lt;/tex&amp;gt; (''разрезать'') позволяет сделать следующее: разрезать декартово дерево &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; по ключу &lt;br /&gt;
&amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; и получить два других декартовых дерева: &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt;, причем в &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt;&lt;br /&gt;
находятся все ключи дерева &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;, не большие &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;, а в &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt; {{---}} большие &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{split}(T, x) \to \{T_1, T_2\}&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Эта операция устроена следующим образом.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим случай, в котором требуется разрезать дерево по ключу, большему ключа корня.&lt;br /&gt;
Посмотрим, как будут устроены результирующие деревья &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt;:&lt;br /&gt;
* &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt;: левое поддерево &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt; совпадёт с левым поддеревом &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;. Для нахождения правого поддерева &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt;, нужно разрезать правое поддерево &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;T^R_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;T^R_2&amp;lt;/tex&amp;gt; по ключу &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; и взять &amp;lt;tex&amp;gt;T^R_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
* &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt; совпадёт с &amp;lt;tex&amp;gt;T^R_2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Случай, в котором требуется разрезать дерево по ключу, меньше либо равному ключа в корне, рассматривается симметрично.&lt;br /&gt;
&lt;br /&gt;
Оценим время работы операции &amp;lt;tex&amp;gt;\mathrm{split}&amp;lt;/tex&amp;gt;. Во время выполнения вызывается одна операция &amp;lt;tex&amp;gt;\mathrm{split}&amp;lt;/tex&amp;gt; для&lt;br /&gt;
дерева хотя бы на один меньшей высоты и делается ещё &amp;lt;tex&amp;gt;\mathcal{O}(1)&amp;lt;/tex&amp;gt; операция. Тогда итоговая трудоёмкость этой операции&lt;br /&gt;
равна &amp;lt;tex&amp;gt;\mathcal{O}(h)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;h&amp;lt;/tex&amp;gt; {{---}} высота дерева. Так как высота декартова дерева {{---}} &lt;br /&gt;
&amp;lt;tex&amp;gt;\mathcal{O}(\log n)&amp;lt;/tex&amp;gt;, то и операция &amp;lt;tex&amp;gt;\mathrm{split}&amp;lt;/tex&amp;gt; работает за &amp;lt;tex&amp;gt;\mathcal{O}(\log n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Операция merge ==&lt;br /&gt;
[[file:merge.png|thumb|400px|Операция merge]]&lt;br /&gt;
&lt;br /&gt;
Рассмотрим вторую операцию с декартовыми деревьями {{---}} &amp;lt;tex&amp;gt;\mathrm{merge}&amp;lt;/tex&amp;gt;(''слить''). &lt;br /&gt;
&lt;br /&gt;
С помощью этой операции можно слить два декартовых дерева в одно.&lt;br /&gt;
Причем, все ключи в первом(''левом'') дереве должны быть меньше, чем&lt;br /&gt;
ключи во втором(''правом''). В результате получается дерево, в котором есть все ключи из первого и второго деревьев.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{merge}(T_1, T_2) \to T&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим принцип работы этой операции. Пусть нужно слить деревья &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Тогда, очевидно, у результирующего дерева &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; есть корень. &lt;br /&gt;
Корнем станет вершина из &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt; с наибольшим ключом &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt;. Но вершина с самым большим &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt; из всех вершин деревьев &lt;br /&gt;
&amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt; может быть только либо корнем &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt;, либо корнем &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Рассмотрим случай, в котором корень &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt; имеет больший &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt;, чем корень &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Случай, в котором корень &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt; имеет больший &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt;, чем корень &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt;, симметричен этому.&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt; корня &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt; больше &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt; корня &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt;, то он и будет являться корнем. Тогда левое поддерево &lt;br /&gt;
&amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; совпадёт с левым поддеревом &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt;. Справа же нужно подвесить объединение правого поддерева&lt;br /&gt;
&amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt; и дерева &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Рассуждая аналогично операции &amp;lt;tex&amp;gt;\mathrm{split}&amp;lt;/tex&amp;gt; приходим к выводу, что трудоёмкость операции &amp;lt;tex&amp;gt;\mathrm{merge}&amp;lt;/tex&amp;gt; &lt;br /&gt;
равна &amp;lt;tex&amp;gt;\mathcal{O}(\log n)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Операция add ==&lt;br /&gt;
Операция &amp;lt;tex&amp;gt;\mathrm{add}(T, k)&amp;lt;/tex&amp;gt; добавляет в дерево &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элемент &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;k.x&amp;lt;/tex&amp;gt; {{---}} ключ, а &amp;lt;tex&amp;gt;k.y&amp;lt;/tex&amp;gt;{{---}} приоритет.&lt;br /&gt;
&lt;br /&gt;
===Реализация №1:===&lt;br /&gt;
# Разобьём наше дерево по ключу, который мы хотим добавить, то есть &amp;lt;tex&amp;gt;\mathrm{split}(T, k.x) \to \{T_1, T_2\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
# Сливаем первое дерево с новым элементом, то есть &amp;lt;tex&amp;gt;\mathrm{merge}(T_1, k) \to T_1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
# Сливаем получившиеся дерево со вторым, то есть &amp;lt;tex&amp;gt;\mathrm{merge}(T_1, T_2) \to T&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Реализация №2:  ===&lt;br /&gt;
Сначала спускаемся по дереву (как в обычном бинарном дереве поиска по &amp;lt;tex&amp;gt;k.x&amp;lt;/tex&amp;gt;), но останавливаемся на первом элементе, в котором значение приоритета оказалось меньше &amp;lt;tex&amp;gt;k.y&amp;lt;/tex&amp;gt;. Мы нашли позицию, куда будем вставлять наш элемент. Теперь вызываем &amp;lt;tex&amp;gt;\mathrm{split }(T, k.x) \to \{T_1, T_2\}&amp;lt;/tex&amp;gt; от найденного элемента (от элемента вместе со всем его поддеревом), и возвращаемые ею &amp;lt;tex&amp;gt;T_1&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;T_2&amp;lt;/tex&amp;gt; записываем в качестве левого и правого сына добавляемого элемента.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Операция remove ==&lt;br /&gt;
Операция &amp;lt;tex&amp;gt;\mathrm{remove}(T, x)&amp;lt;/tex&amp;gt; удаляет из дерева &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; элемент с ключом &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Реализация №1:===&lt;br /&gt;
&lt;br /&gt;
# Разобьём наше дерево по ключу, который мы хотим удалить, то есть &amp;lt;tex&amp;gt;\mathrm{split }(T, k.x) \to \{T_1, T_2\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
# Теперь отделяем от первого дерева элемент &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;, опять таки разбивая по ключу &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;, то есть &amp;lt;tex&amp;gt;\mathrm{split }(T_1, k.x - \varepsilon) \to \{T_1, T_3\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
# Сливаем первое дерево со вторым, то есть &amp;lt;tex&amp;gt;\mathrm{merge }(T_1, T_2) \to T&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Реализация №2:===&lt;br /&gt;
Спускаемся по дереву (как в обычном бинарном дереве поиска по &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;), ища удаляемый элемент. Найдя элемент, мы просто вызываем &amp;lt;tex&amp;gt;merge&amp;lt;/tex&amp;gt; его левого и правого сыновей, и возвращаемое ею значение ставим на место удаляемого элемента, то есть &amp;lt;tex&amp;gt;\mathrm{merge }(T.l, T.t) \to T&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
Todo&lt;br /&gt;
&lt;br /&gt;
[[Категория:Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория:Деревья поиска]]&lt;/div&gt;</summary>
		<author><name>89.163.5.56</name></author>	</entry>

	</feed>