Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Teoretichni_osnovi_programuvannya.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
132.61 Кб
Скачать

Сортування вибором при допомозі дерева - алгоритм Heap Sort.

Прямий вибір - повторюваний пошук найменшого елемента серед N елементів, N-1 елементів, N-2 і т.д. Кількість порівнянь при цьому (N2-N)/2. Для підвищення ефективності необхідно залишати після кожного етапу побільше інформації окрім ідентифікації найменшого ключа.

Після N/2 порівнянь можна знайти в кожній парі елементів найменший, після N/4 порівнянь - менший із пари вже вибраних на попередньому кроці і т.д. Виконавши загалом N/2+N/4+...+2+l=N-l порівнянь, можна побудувати дерево вибору та ідентифікувати його корінь як шуканий найменший елемент. Наприклад

На наступному етапі сортування проводиться рух вздовж віток, які відмічені мінімальними елементом, і вилучення його з дерева шляхом заміни на пустий елемент.

Далі здійснюється заповнення «дірок» у дереві. На першому рівні залишається «дірка» від вилученого елемента, а на наступних знову вибирається менший із двох сусідніх попереднього рівня. «Дірка» при порівнянні вважається як завгодно великим значенням.

Елемент, що опинився в корені - знову найменший. Після N таких кроків дерево стане пустим, в ньому будуть лише одні "дірки" (сортування закінчене). На кожному з N етапів виконується log(N) порівнянь. Тому на весь процес впорядкування потрібно порядку N*log(N) операцій плюс N-1 операцій для побудови дерева. Ефективність порядку .

6. Сортування структур даних з послідовним доступом. Алгоритми злиття.

Пряме злиття є простим алгоритмом сортування, і його часто використовують як допоміжну операцію в більш складних процесах сортування послідовностей. Цей прийом полягає в послідовному виконанні наступних дій :

1)вихідна послідовність а розбивається на дві підпослідовності приблизно однакової довжини b і с ;

2) отримані частини b і с зливаються в одну послідовність, причому вибрані з них по одному елементи утворюють впорядковані пари ;

3) об'єднана таким чином послідовність під тим же іменем а знову розбивається на дві частини та зливається в одну. Але при цьому вибираються вже по два підряд елементи і впорядковуються четвірки;

4)такі послідовні розбиття та об'єднання із збільшенням на кожному етапі кількості вибраних для злиття елементів повторюються, поки не отримається повністю відсортована послідовність.

На останньому етапі зливатимуться всі елементи обох частин b і с.

10

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