Return to Video

Красно-Черные деревья (21 мин)

  • 0:00 - 0:03
    В этом видео мы продвинемся дальше за пределы элементарных двоичных деревьев поиска
  • 0:03 - 0:07
    как те что мы обсуждали раньше, и начнем обсуждать
  • 0:07 - 0:10
    сбалансированные двоичные деревья поиска. Это именно те деревья, которые стоит
  • 0:10 - 0:14
    использовать на практике, так как они предоставляют хорошие гарантии на время выполнения.
  • 0:14 - 0:18
    Эти деревья поддерживают свою сбалансированность, что означает,
  • 0:18 - 0:21
    что высота остается логорифмической, что в свою очередь означает что все операции,
  • 0:21 - 0:25
    поддерживаемые деревом поиска которые мы знаем и любим так же будут иметь сложность,
  • 0:25 - 0:27
    логарифмическую от количества сохраненных ключей.
  • 0:27 - 0:30
    Итак, давайте быстро повторим пройденное. Какое основное свойство структуры дерева?
  • 0:30 - 0:34
    Для каждой вершины дерева должно выполняться: в левом поддереве
  • 0:34 - 0:38
    будут только элементы меньше чем рассматриваемая вершина,
  • 0:38 - 0:42
    в правом -- все элементы будут больше.
  • 0:42 - 0:46
    Очень важно, что по фиксированному набору ключей
  • 0:46 - 0:49
    можно построить очень много корректных бинарных деревьев поиска, содержащих
  • 0:49 - 0:51
    данные ключи. Мы уже рассматривали пример
  • 0:51 - 0:54
    с ключами один, два, три, четыре и пять.
  • 0:54 - 0:58
    С одной стороны вы можете построить отлично сбалансированное дерево с высотой равной двум
  • 0:58 - 1:02
    и с ключами от одного до пяти. С другой, можно так же построить
  • 1:02 - 1:06
    безумную цепочку, практически превращая дерево в связанный список, высота которого для
  • 1:06 - 1:09
    N элементов может достигать N-1. Итак, вообще говоря высота древьев может
  • 1:09 - 1:13
    различаться экспоненциально. В лучшем случае высота будет
  • 1:13 - 1:16
    логорифмической и в худшем -- линейной.
  • 1:16 - 1:20
    Это мотивирует поиск деревьев, которые позволят
  • 1:20 - 1:24
    не беспокоится об их высоте. Мы просто знаем что они
  • 1:24 - 1:26
    хорошо сбалансированны, знаем что их высота
  • 1:26 - 1:28
    логорифмична. Мы никогда не беспокоимся что они
  • 1:28 - 1:32
    будут линейны. Помните, почему это так важно чтобы
  • 1:32 - 1:35
    высота была небольшой? Потому, что время выполнения всех
  • 1:35 - 1:39
    операций на дереве поиска зависит от его высоты.
  • 1:39 - 1:43
    Хотите ли вы искать элементы, добавлять, находить предшествующий элемент
  • 1:43 - 1:48
    или что бы то ни было ещё, высота дерева определяет время выполнения всех
  • 1:48 - 1:50
    этих операций. Итак, основная идея работы
  • 1:50 - 1:55
    с бинарными деревьями: так как высота
  • 1:55 - 1:58
    не может быть меньше чем логорифмической от количество сохраненных
  • 1:58 - 2:02
    элементов, потому что деревья бинарные => количество узлов может лишь
  • 2:02 - 2:05
    удваиваться на каждом уровне => вам необходимо логорифмическое количество уровней
  • 2:05 - 2:07
    чтобы сохранить все элементы.
  • 2:07 - 2:11
    Если мы хотим, чтобы она была логорифмична, давайте убедимся что она остаётся такой
  • 2:11 - 2:16
    всё время, даже после выполнения вставок и удалений. Если нам это удастся, мы получим огромное
  • 2:16 - 2:21
    количество выполняемых за логорифмическое время операций.
  • 2:21 - 2:25
    Как и всегда N обозначает количество ключей сохраненных в дереве.
  • 2:25 - 2:29
    На свете очень очень много различных сбалансированных деревьев.
  • 2:29 - 2:33
    Большинство из них не очень отличается от остальных.
  • 2:33 - 2:37
    Я расскажу про одно из наиболее популярных -- Красно Черное Дерево.
  • 2:37 - 2:40
    Оно было придумано в семидесятых
  • 2:40 - 2:45
    и не является самым первым из известных сбалансированных деревьев -- это звание
  • 2:45 - 2:49
    принадлежит АВЛ деревьям, которые в общем то не слишком отличаются от Красно Черных деревьев,
  • 2:49 - 2:52
    хотя поддерживаемые инваринты и различны.
Title:
Красно-Черные деревья (21 мин)
Video Language:
English
theworldcreator edited Russian subtitles for Red-Black Trees (21 min)
theworldcreator edited Russian subtitles for Red-Black Trees (21 min)
theworldcreator edited Russian subtitles for Red-Black Trees (21 min)
theworldcreator edited Russian subtitles for Red-Black Trees (21 min)
theworldcreator added a translation

Russian subtitles

Incomplete

Revisions