Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по МОТС / ДИСКРЕТНАЯ МАТЕМАТИКА Графы.doc
Скачиваний:
377
Добавлен:
15.02.2014
Размер:
3.38 Mб
Скачать

9.4.8. Сравнение представлений ассоциативной памяти

Пусть n — количество элементов в ассоциативной памяти. Тогда сложность опе­раций для различных представлений ограничена сверху следующим образом.

Неупорядоченный массив

Упорядоченный массив

Дерево сортировки

Добавить

Найти

Удалить

O(1)

O(n)

O(1)

O(n)

O(log2(n))

0(n)

O(log2(n))..O(n)

O(log2(n))..O(n)

O(log2(n))..O(n)

Эффективность операций с деревом сортировки ограничена сверху высотой де­рева.

ЗАМЕЧАНИЕ

Дерево сортировки может расти неравномерно. Например, если при загрузке дерева ис­ходные данные уже упорядочены, то полученное дерево будет право - или леволинейным и будет даже менее эффективным, чем неупорядоченный массив.

9.4.9. Выровненные деревья

Ордерево называется выровненным, если все узлы, степень которых меньше 2, располагаются на одном или двух последних уровнях. Выровненное дерево имеет наименьшую возможную для данного р высоту h.

Пример

На рис. 9.12 приведены диаграммы выровненного (слева) и невыровненного (справа) деревьев.

Рис. 9.12. Выровненное (слева) и невыровненное деревья

ЛЕММА .

доказательство

Индукция по k. База: k = 0  20 = 1, 21 - 1 = 1, 1 = 1. Пусть, тогда

ТЕОРЕМА Для выровненного бинарного дерева log2(p + 1) - 1  h < log2(p + 1).

доказательство

На i-м уровне может быть самое большее 2i вершин, следовательно,

По лемме имеем: 2h—1 < р  2h+1 - 1и 2h <p+l  2h+1. Логарифмируя, имеем: h< log2(p +1) & h +1log2(p +1). Следовательно log2(p +1) – 1  h < log2(p +1).

ЗАМЕЧАНИЕ

Выровненные деревья дают наибольший возможный эффект при поиске. Однако извест­но, что вставка/удаление может потребовать полной перестройки всего дерева и, таким образом, трудоемкость операции в худшем случае составит О(р).

9.4.10. Сбалансированные деревья

(Бинарное) дерево называется подровненным деревом, или АВЛ-деревом (Адель-сон-Вельский и Ландис, 1962), или сбалансированным деревом, если для любого узла высота левого и правого поддеревьев отличается не более чем на 1.

Пример

На рис. 9.13 приведена диаграмма максимально несимметричного сбалансиро­ванного дерева, в котором для всех узлов высота левого поддерева ровно на 1 больше высоты правого поддерева.

ТЕОРЕМА Для подровненного бинарного дерева h < 2 log2 p.

доказательство

Рассмотрим наиболее несимметричные сбалансированные деревья, скажем, такие, у которых всякое левое поддерево на 1 выше правого. Такие сбалансированные деревья имеют макси­мальную возможную высоту среди всех сбалансированных деревьев с заданным числом вер­шин. Пусть Ph — число вершин в наиболее несимметричном сбалансированном дереве вы­соты h. По построению имеем: р = Ph = Ph-1 + Ph-2 + 1. Непосредственно проверяется, что Р0 = 1, Р1 = 2, Р2= 4. Покажем по индукции, что Ph База: Р0 = 1, = 1, 1  l;P1 = 2 =, 2 .

Рис.9.13. Сбалансированное дерево

Пусть Ph Тогда Ph+l =Ph + Ph-1 + 1 +1=.

Имеем:  Ph = р, следовательно, log2p и h  21og2p.

ЗАМЕЧАНИЕ

Известна более точная оценка высоты сбалансированного -дерева: h < 21og2p.

Сбалансированные деревья уступают выровненным деревьям по скорости поис­ка (менее чем в два раза), однако их преимущество состоит в том, что известны алгоритмы вставки и удаления узлов в сбалансированное дерево, которые сохра­няют сбалансированность и в то же время при перестройке дерева затрагива­ют только конечное число узлов (см., например, [13]). Поэтому в подавляющем большинстве случаев сбалансированное дерево оказывается наилучшим вариантом предста­вления дерева сортировки.