Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Стійкість алгоритмів.docx
Скачиваний:
1
Добавлен:
15.09.2019
Размер:
43.29 Кб
Скачать

[ Правити ]Стійка сортування без додаткової пам'яті за час o ('n' log 'n')

Цей розділ не завершений .

Ви допоможете проекту, виправивши і доповнивши його.

[ Правити ]Шляхи поліпшення алгоритмів

  • У всіх вищенаведених алгоритмах при розбитті вихідного масиву на частини рекурсивне розбиття можна зупинити, якщо розмір разбиваемого масиву стане досить маленьким. Тоді можна застосувати будь-якої з простих алгоритмів сортування (наприклад, сортування вставками ), які, як відомо, працюють швидше ніж складні, якщо розмір вхідного масиву невеликий. Фактично даний прийом можна застосувати не тільки для представлених тут алгоритмів, а й для будь-якого іншого алгоритму, де застосовується рекурсивне розбиття вихідного масиву (наприклад, звичайна нестабільна швидке сортування ). Конкретне число вхідних елементів, при якому треба переходити на простий алгоритм сортування, залежить від використовуваної обчислювальної машини.

  • В алгоритмі Пратта, алгоритмі без пошуку медиан і алгоритмі з використанням стійкого поділу замість того, щоб кожен раз рекурсивно викликати процедуру злиття, можна динамічно виділити масив тимчасових змінних. Тоді можна буде продовжувати розбиття діапазону лише до тих пір, поки число елементів в більшому діапазоні не стане менше або дорівнює місткості тимчасового масиву. Фактично на деякому кроці рекурсії алгоритм Пратта і алгоритм без пошуку медиан перетворюються в алгоритм простого злиття. Т. о. якщо в системі досить динамічної пам'яті, то асимптотичну час роботи можна довести до O (n log n) замість O (n log ² n).