16
Розробка та аналіз алгоритмів 9. Піраміди Функціонування пірамід Пірамідальне сортування Черги з пріоритетами (с) Олексій Молчановський, Prometheus.org.ua 1

09 Піраміди

Embed Size (px)

Citation preview

Page 1: 09 Піраміди

Розробка та аналіз алгоритмів

9. Піраміди

• Функціонування пірамід

• Пірамідальне сортування

• Черги з пріоритетами

(с) Олексій Молчановський, Prometheus.org.ua 1

Page 2: 09 Піраміди

Означення піраміди

(с) Олексій Молчановський, Prometheus.org.ua 2

Page 3: 09 Піраміди

Типи пірамід

(с) Олексій Молчановський, Prometheus.org.ua 3

Page 4: 09 Піраміди

Основні операції

• Підтримка властивості піраміди – O(lgn)

• Створення піраміди – O(n)

• Пірамідальне сортування – O(n lgn)

• Використання піраміди в якості черги з пріоритетами – O(lgn)

(с) Олексій Молчановський, Prometheus.org.ua 4

Page 5: 09 Піраміди

Підтримка властивості піраміди

(с) Олексій Молчановський, Prometheus.org.ua 5

Page 6: 09 Піраміди

Підтримка властивості піраміди

(с) Олексій Молчановський, Prometheus.org.ua 6

Page 7: 09 Піраміди

Створення піраміди

(с) Олексій Молчановський, Prometheus.org.ua 7

Page 8: 09 Піраміди

Створення піраміди

(с) Олексій Молчановський, Prometheus.org.ua 8

Page 9: 09 Піраміди

Створення піраміди

(с) Олексій Молчановський, Prometheus.org.ua 9

Page 10: 09 Піраміди

Створення піраміди. Аналіз алгоритму

(с) Олексій Молчановський, Prometheus.org.ua 10

Page 11: 09 Піраміди

Пірамідальне сортування

(с) Олексій Молчановський, Prometheus.org.ua 11

Page 12: 09 Піраміди

Пірамідальне сортування

(с) Олексій Молчановський, Prometheus.org.ua 12

Page 13: 09 Піраміди

Черги з пріоритетами

• Черга з пріоритетом – це множина S, в якій кожний елемент має ключ у вигляді числа

• Незростаюча черга• Приклад. Задачі (процеси) для виконання ОС. Задачі впорядковані за

спаданням пріоритетів

• Неспадна черга• Приклад. Події, які моделюються. Всі події впорядковані за зростанням

горизонту (часу) виконання

(с) Олексій Молчановський, Prometheus.org.ua 13

Page 14: 09 Піраміди

Черги з пріоритетами. Базові операції

• Вставка елементу (Insert) – додає елемент до черги

• Визначення максимального елементу (Maximum) – повертає значення найбільшого елементу черги

• Видалення максимального елементу (ExtractMax) – видаляє та повертає найбільший елемент з черги

• Збільшення ключа для елементу (IncreaseKey) – збільшує значення ключа для заданого елементу черги

(с) Олексій Молчановський, Prometheus.org.ua 14

Page 15: 09 Піраміди

Черги з пріоритетами. Базові операції

(с) Олексій Молчановський, Prometheus.org.ua 15

Page 16: 09 Піраміди

Черги з пріоритетами. Базові операції

(с) Олексій Молчановський, Prometheus.org.ua 16