• Виконали: Павлюх Роман Петруняк

Скачать презентацию • Виконали:  Павлюх Роман  Петруняк Скачать презентацию • Виконали: Павлюх Роман Петруняк

pp.ppt

  • Количество слайдов: 7

> • Виконали:  Павлюх Роман  Петруняк Михайло     1 • Виконали: Павлюх Роман Петруняк Михайло 1

>    ПЛАН  •  Короткий опис •  Програма мовою ПЛАН • Короткий опис • Програма мовою С • Блок-схема • Висновки 2

>    Короткий опис Пірамідальне сортування (Heap sort) базується на структурі даних, Короткий опис Пірамідальне сортування (Heap sort) базується на структурі даних, названій купою. Працює за O(n*log(n)). Загалом повільніше ніж швидке, але зате n*log(n) - найгірша оцінка. Купа - це бінарне дерево, яке задовільняє умову купи. Умова купи полягає в тому, що кожен син менший за свого батька. Тому можна стверджувати що корінь дерева - максимальний елемент купи. Купа дуже просто представляється в масиві. Перший елемент - корінь. Другий і третій - його сини. Для n-того елемента можна стверджувати, що лівий син - n*2, а правий - n*2+1. Алгоритм зводиться до побудови купи, переміщення максимального елемента в відсортовану частину масиву, і побудови нової, меншої купи. Щоб відсортувати масив за допомогою цього методу ми спочатку будуємо купу. Найбільший елемент масиву буде мати номер 1. Ми міняємо його з останнім, і зменшуємо розмір купи. Тепер щоб побудувати купу, досить викликати heapify(1, a, heapsize). І знову в нас найбільший елемент буде стояти спочатку. Так повторюємо, аж поки купа не буде містити один елемент. Цей елемент буде мінімальним. Так масив відсортується за зростанням. 3

>Приклад сортування випадкового набору чисел за алгоритмом   пірамідальне сортування   Приклад сортування випадкового набору чисел за алгоритмом пірамідальне сортування 4

> Розглянемо повернуте сортування    вибором  Розглянемо перевернуте сортування вибором. Під Розглянемо повернуте сортування вибором Розглянемо перевернуте сортування вибором. Під час проходу, замість вставки найменшого елемента у лівий кінець масиву, вибиратимемо найбільший елемент, а готову послідовність будемо будувати у правому кінці. Приклад дій для масиву а[0]. . . а[7]: 44 55 12 42 94 18 06 67 початковий масив 44 55 12 42 67 18 06 |94 94 <-> 67 44 55 12 42 06 18 |67 94 67 <-> 06 44 18 12 42 06 |55 67 94 55 <-> 18 06 18 12 42 |44 55 67 94 44 <-> 06 18 12 |42 44 55 67 94 42 <-> 42 06 12 |18 42 44 55 67 94 18 <-> 12 5 06 |12 18 42 44 55 67 94 12 <-> 12

>Програма мовою с    6 Програма мовою с 6

>     ВИСНОВОК Отже, ми розглянули як працює алгоритм пірамідального сортування ВИСНОВОК Отже, ми розглянули як працює алгоритм пірамідального сортування і спробували визначити його складність. Застосування того чи іншого алгоритму сортування для вирішення конкретної задачі є досить складною проблемою, вирішення якої потребує не лише досконалого володіння саме цим алгоритмом, але й всебічного розглядання того чи іншого алгоритму, тобто визначення усіх його переваг і недоліків. Звичайно, необхідність застосування саме швидких алгоритмів сортування очевидна. Адже прості алгоритми сортування не дають бажаної ефективності в роботі програми. Але завжди треба пам’ятати й про те, що кожний швидкий алгоритм сортування поряд із своїми перевагами може містити і деякі недоліки. Розглядаючи такий швидкий алгоритм сортування, як пірамідальне сортування, можна зазначити, що цей алгоритм ефективний, адже він сортує “на місці", тобто він не потребує додаткових масивів. Крім того, цей алгоритм оптимальний: його складність співпадає з нижньою оцінкою задачі, тобто за критеріями C (n) та M (n) він має складність O (n log 2 n), але містить складний елемент в умові. 7