Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ASD_Lecture04

.pdf
Скачиваний:
19
Добавлен:
12.02.2016
Размер:
1.23 Mб
Скачать

Теорія алгоритмів

Лекція 4: AVL-дерева, хеш-таблиці

др.інж. Андрій Керницький

kernitsky@gmail.com

к.т.н. Павло Денисюк

Лекція 4

Зміст

AVL-дерева

Хеш-таблиці

Лекція 4

2

Бінарні дерева пошуку (БДП) – Найкращий час

Всі операції БДП мають часову складність O(d), де d є висотою дерева

Мінімальне d дорівнює d log2N для бінарного дерева з N вузлами

Яке дерево є найкращим випадком?

Яке дерево є найгіршим випадком?

Найкращий час операцій на БДП дорівнює

O(log N)

Лекція 4

3

Бінарні дерева пошуку – Найгірший час

Найгірша часова складність БДП є O(N)

Що станеться коли ми вставлятимемо елементи у поряку зростання?

Вставити: 2, 4, 6, 8, 10, 12 у порожнє БДП

Проблема: Відсутність “балансу”:

Порівняйте глибинулівого і правого піддерева

Роззбалансоване вироджене дерево

Лекція 4

4

Збалансовані і незбалансовані БДП

 

 

1

 

 

 

4

 

 

 

2

 

2

5

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

1

 

3

 

 

4

 

4

 

 

 

 

 

5

 

Дане дерево

 

 

 

 

 

“збалансоване”?

 

2

 

6

6

 

 

 

 

 

 

 

 

 

 

 

1

3

5

 

7

7

 

Лекція 4

5

Підходи до збалансування дерев

Не збалансовувати

Деякі вузли опиняються дуже глибоко

Ідеальне збалансування

Дерево завжди повинно бути збалансовано ідеально

Достатньо хороше збалансування

Дозволяються незначні відхилення убалансуванні

Налаштування доступу

Само-налаштування

Лекція 4

6

Балансування БДП

Існує багато алгоритмів для підтримання бінарних дерев пошуку збалансованими

• Дерева Адельсон-Вельського і Ландиса (AVL) (дерева збалансовані по висоті)

Георгій Адельсон-Вельский

8 січня 1922 —

Ашдод, Ізраїль

Splay-дерева та інші саморегулюючі дерева

Б-дерева та інші багатосторонні дерева пошуку

Червоно-чорні дерева

Ландис Євгеній 6 жовтня1921, Харків

— 12 грудня 1997, Москва

Лекція 4

7

Ідеальне балансування

Вимагає збалансування дерева після кожної операції

Дерево є повним за винятком листків

Дуже накладно

Наприклад, вставити 2 у дерево зліва і потім перебудувати у повністю збалансоване дерево

 

 

6

Вставити 2 &

 

5

 

 

4

 

9 деревозбалансувати 2

 

 

8

1

5

8

1

4

6

9

Лекція 4

8

AVL – хороше, але не ідеальне збалансування

AVL дерева є збалансованими по висоті БДП

Баланс вузла

висота(ліве піддерево) - висота(праве піддерево)

AVL дерево має баланс, який вираховується для кожного вузла

Для кожного вузла, висота лівого і правого піддерева може відрізнятися не більше ніж на 1

Зберігати біжучі висоти у кожному вузлі

Лекція 4

9

Висота вузлів

Дерево A (AVL)

 

Дерево B (AVL)

 

висота=2 BF=1-0=1

 

 

2

1

6

1

 

6

0

 

1

4

9

4

 

9

0

0

0

0

0

1

5

1

5

8

Висота вузла

= h

Баланс

= hleft-hright

Лекція 4

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]