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

ASD_Lecture04

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

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

Лекція 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

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