Решение pекуppентных соотношений



где n = M, M+1, M+2, ..., М - известная постоянная, имеет вид

В моногpафии Д.Кнута [3, с.107-110] числа Hn назваются гаpмоническими числами.

Доказательство леммы.

Из соотношения (1) легко можно получить

 

Вычитая, получим

где x0 - известная постоянная.

Для дальнейшего упрощения формулы (2) положим

fn = a*n + b,         (3)

где a и b - известные постоянные.

ЛЕММА ДОКАЗАНА.

Доказательство теоpемы.

Пусть Tn - число сравнений, производимых между элементами последовательности a1, a2, a3, ..., an пpи построении бинарного дерева поиска, To= 0.

Пусть b1, b2, b3, ..., bn - та же последовательность в порядке возрастания. Если a1, a2, a3, ..., an - случайная последовательность элементов, то a1 с равной вероятностью совпадает с bj для любого j, 1 <= j <= n.

Элемент a1 становится корнем бинарного дерева поиска, и в окончательном деpеве j-1 элементов b1, b2, ..., bj-1 будут находиться в левом поддереве корня и n-j элементов bj+1, bj+2, ..., bn - в правом поддереве.

Подсчитаем среднее число сравнений, необходимых для вставки элементов b1, b2, ..., bj-1 в дерево. Каждый из этих элементов когда-нибудь сравнивается с корнем, и это дает j-1 сравнений с корнем. Затем по индукции получаем, что еще потребуется Tj-1 сравнений, чтобы вставить b1, b2,...,bj-1 в левое поддерево.

Итак, необходимо j-1 + Tj-1 сравнений, чтобы вставить b1, b2, ..., bj-1 в бинарное дерево поиска. Аналогично n-j + Tn-j сравнений потребуется, чтобы вставить в дерево элементы bj+1, bj+2, ..., bn.

Поскольку j с равной вероятностью принимает любое значение от 1 до n, то

Применим результаты доказанной ранее леммы: так как a=1, b= -1, To=0, то Tn = 2(n+1)Hn- 4n .

Таким образом, в среднем на вставку n элементов в дерево двоичного поиска тратится в среднем O(nlog2n) сравнений.

ТЕОРЕМА ДОКАЗАНА .


ЗАДАНИЕ:

1) Осуществить изучение материала путем реализации приведенных примеров кода.

2) Провести разбор доказательства Теоpема Хопкpофта-Ульмана (данный вопрос выносится на экзамен)

3) Ответить на следующие вопросы:

a) Что такое бинарное дерево поиска, чем оно отличается от бинарного дерева.

b) Привести примеры использования бинарного дерева поиска.

c) Оценить эффективность данного метода.

4) При какой входной последовательности к приведенному алгоритму мы получим бинарное (двоичное) дерево поиска следующего вида:

Источники:

1)  [ЭЛЕКТРОННЫЙ РЕСУРС]: Кафедра ПОАС КГУ; режим доступа: http://it.kgsu.ru/).

2) [ЭЛЕКТРОННЫЙ РЕСУРС]: Wikipedia; режим доступа: https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0

3) Кнут Д. Искусство программирования для ЭВМ. Т.1: Основные алгоритмы. - M.: Мир, 1976. - 736 с

4) (1) Вирт H. Алгоритмы + структуры данных = программы. - М.: Мир, 1985. - 406 с.

5) (2) Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. - М.: Мир, 1979. - 536 с.

6) (3) Кнут Д. Искусство программирования для ЭВМ. Т.1: Основные алгоритмы. - M.: Мир, 1976. - 736 с.

7) (4) Кнут Д. Искусство программирования для ЭВМ. Т.3: Сортировка и поиск. - M.: Мир, 1978. - 844 с.

8) (5) Рейнгольд Э., Hивергельт Ю., Део H. Комбинаторные алгоритмы. Теория и практика. - М.: Мир, 1980. - 476 с.


Дата добавления: 2021-07-19; просмотров: 99; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!