02 Сортування включенням
TRANSCRIPT
Розробка та аналіз алгоритмів
2. Сортування включенням
• Метод сортування включенням
• RAM
• Аналіз алгоритму
• Асимптотичні позначення
(с) Олексій Молчановський, Prometheus.org.ua 1
Сортування включенням
(с) Олексій Молчановський, Prometheus.org.ua 2
Алгоритм сортування включенням
(с) Олексій Молчановський, Prometheus.org.ua 3
Сортування включенням
(с) Олексій Молчановський, Prometheus.org.ua 4
Машина з довільним доступом до пам’яті (Random Access Machine, RAM)• RAM – модель узагальненої однопроцесорної машини з довільним доступом
до пам’яті
• В цій моделі команди процесору виконуються послідовно; операції, які виконуються одночасно, відсутні
• Модель містить типові команди процесору: арифметичні операції, операції переміщення даних, керуючі операції
• Для виконання кожної інструкції потрібен фіксований проміжок часу
• Модель має цілочисловий тип даних та тип чисел з плаваючою точкою
(с) Олексій Молчановський, Prometheus.org.ua 5
Аналіз алгоритму сортування включенням
• Час роботи алгоритму для того або іншого входу вимірюється в кількості елементарних операцій, або «кроків», які необхідно виконати
(с) Олексій Молчановський, Prometheus.org.ua 6
Аналіз алгоритму сортування включенням
INSERTION_SORT(A)
1. FOR j = 2 TO n:
2. key = A[j]
3. i = j – 1
4. WHILE i>0 and A[i]>key:
5. A[i+1] = A[i]
6. i = i – 1
7. A[i+1] = key
(с) Олексій Молчановський, Prometheus.org.ua 7
Аналіз алгоритму сортування включенням
• Найкращий випадок
(с) Олексій Молчановський, Prometheus.org.ua 8
Аналіз алгоритму сортування включенням
• Найгірший випадок
(с) Олексій Молчановський, Prometheus.org.ua 9
Аналіз алгоритму сортування включенням
• Найкращий випадок:
• Найгірший випадок:
(с) Олексій Молчановський, Prometheus.org.ua 10
Порядок зростання
• В аналізі алгоритмів зазвичай досліджують час роботи алгоритму тільки у найгіршому випадку – максимальний час роботи серед усіх вхідних даних розміром n• Час роботи алгоритму в найгіршому випадку – це верхня межа для будь-
яких вхідних даних
• В деяких задачах найгірший випадок зустрічається досить часто (наприклад, пошук в базі даних елементу, якого там не існує)
(с) Олексій Молчановський, Prometheus.org.ua 11
Асимптотичні позначення
(с) Олексій Молчановський, Prometheus.org.ua 12
Асимптотичні позначення
(с) Олексій Молчановський, Prometheus.org.ua 13