Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Дослідження методів сортування вибором

Реферат Дослідження методів сортування вибором





Малюнок 4. Процес побудови піраміди

Отже, завдання побудови піраміди з масиву успішно вирішена. Як видно з властивостей піраміди, в корені завжди знаходиться максимальний елемент. Звідси випливає алгоритм фази 2:

· Беремо верхній елемент піраміди a [0] ... a [n] (перший в масиві) і міняємо з останнім місцями. Тепер «забуваємо» про це елементі і далі розглядаємо масив a [0] ... a [n - 1]. Для перетворення його в піраміду досить просіяти лише новий перший елемент.

· Повторюємо крок 1, поки оброблювана частина масиву не зменшиться до одного елемента.


Малюнок 5. Просіювання елементів масиву


Очевидно, що в кінець масиву щораз потрапляє максимальний елемент з поточної піраміди, тому в правій частині поступово виникає впорядкована послідовність.


Малюнок 6. Ілюстрація 2-ї фази сортування у внутрішньому поданні піраміди.

67 18 44 55 12 06 42//

55 44 06 42 18 12//94

42 44 06 12 18//67 94

42 18 червня дванадцять//55 67 94

18 грудня +06//44 55 67 94

6 грудня//42 44 55 67 94

06//18 42 44 55 67 94

//12 18 42 44 55 67 94


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

Друга фаза займає O (n log n) часу: O (n) раз береться максимум і відбувається просіювання колишнього останнього елемента. Плюсом є стабільність методу: середнє число пересилань (n log n)/2, і відхилення від цього значення порівняно малі.

Пірамідальна сортування не використовує додаткової пам'яті. Метод не є стійким: по ходу роботи масив так «перетрушується», що вихідний порядок елементів може змінитися випадковим чином, часткова впорядкованість масиву ніяк не враховується.


1.3 Паливний метод сортування


Плавне сортування - алгоритм сортування вибором, різновид пірамідальної сортування, розроблена Е. Дейкстрой в 1981 році. Як і пірамідальна сортування, має складність в гіршому випадку рівну O (n log n). Перевага плавної сортування в тому, що її складність наближається до O (n), якщо вхідні дані частково відсортовані, в той час як у пірамідальної сортування складність завжди одна, незалежно від стану вхідних даних.

Як і в пірамідальної сортуванню, в масив накопичується купа з даних, які потім сортуються шляхом безперервного видалення максимуму з купи. На відміну від пірамідальної сортування, тут використовується не двійкова купа, а спеціальна, отримана за допомогою чисел Леонардо. Купа складається з послідовності куп, розміри яких дорівнюють одному з чисел Леонардо, а коріння зберігаються в порядку зростання. Переваги таких спеціальних куп перед двійковими полягають у тому, що якщо послідовність відсортована, її створення і руйнування займе O (n) часу, що буде швидше. Розбити вхідні дані на купи просто: крайні зліва вузли масиву складуть найбільшу купу, а що залишилися будуть розділені подібним чином:

· Масив будь-якої довжини може бути також розбитий на частині розміру L (x).

· Не повинно бути двох куп однакового розміру, тому що в цьому випадку послідовність перетвориться в строго спадну за розмірами.

· Не повинно бути двох куп, розміри яких дорівнюють двом послідовним числам Леонардо, за винятком масиву довжини 2.

Ці положення можуть бути доведені:

Кожна купа розміру L (x) складається, зліва направо, з подкучі розміру L (x? 1), подкучі розміру L (x? 2) і кореня, за винятком куп розміру L (1) і L (0), які складаються тільки з кореня. Для кожної купи виконується наступна властивість: значення кореня повинно бути не менше значень коренів його куп-нащадків (і, як наслідок, не менше значень всіх вузлів його куп-нащадків). Для послідовності куп в свою чергу виконується наступна властивість: значення кореня кожної купи повинно бути не менше значення кореня купи зліва. Наслідок цього - крайній правий вузол в послідовності матиме найбільше значення, і, що важливо, частково відсортований масив не потребуватиме перестановці елементів, для того щоб стати правильної послідовністю куп. Це є джерелом пристосовності алгоритму. Алгоритм простий. Спочатку відбувається поділ відсортованого масиву на купу з одним елементом і невідсортовану частину. Купа з одним елементом, очевидно, являє собою правильну послідовність куп. Послідовність починає рости шляхом додавання по одному елементу праворуч за раз (якщо ...


Назад | сторінка 3 з 9 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Аналіз методів сортування одновимірного масиву
  • Реферат на тему: Алгоритм сортування масивів
  • Реферат на тему: Створення інформаційного ресурсу та реалізація алгоритму сортування даних
  • Реферат на тему: Сортування даних та реалізація швидкого пошуку у вже відсортованому масиві ...
  • Реферат на тему: Розробка в середовищі Turbo Pascal програми сортування елементів, що знаход ...