Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_4-Sort.doc
Скачиваний:
6
Добавлен:
21.08.2019
Размер:
209.92 Кб
Скачать

20

Міністерство освіти І науки України

національний університет “Львівська політехніка”

Кафедра ЕОМ

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

Методичні вказівки

До лабораторної роботи № 4

з дисципліни

" AЛГОРИТМИ ТА МЕТОДИ ОБЧИСЛЕНЬ"

для студентів напряму

6.050102 “Комп’ютерна інженерія”

Затверджено

на засідання кафедри

Електронні обчислювальні машини”.

Протокол № __ від ________ 2011 р. р.

Львів – 2011

Методичні вказівки до комплексу лабораторних робіт з дисципліни "AЛГОРИТМИ ТА МЕТОДИ ОБЧИСЛЕНЬ" для підготовки студентів напряму 6.050102 “Комп’ютерна інженерія” / Укл. Т.А.Матвейчук – Львів: Видавництво НУ “Львівська політехніка”, 2011 – 12 с.

Укладач: Матвейчук Т.А., ст. викладач каф.ЕОМ

Відповідальний

за випуск: Мельник А.О., д-р техн. наук, проф.

Рецензенти: Мороз І.В., ст. викладач каф.ЕОМ

Юрчак І.Ю., доцент кафедри САПР, к.т.н.

1. Мета роботи

Вивчення і програмна реалізація методів сортування даних та дослідження їх ефективності.

2. Теоретичні відомості

2.1. Задача сортування

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

Ми знаємо, що одну й ту саму задачу можна вирішити за допомогою різних алгоритмів і кожен раз зміна алгоритму приводить до нових, більш або менш ефективних розв'язків задачі. Основними вимогами до ефективності алгоритмів сортування є перш за все ефективність за часом та економне використання пам'яті. Згідно цих вимог, прості алгоритми сортування (такі, як сортування вибором і сортування включенням) не є дуже ефективними.

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

Алгоритм сортування вибором ефективніше сортування обмінами за критерієм М(n), тобто за кількістю пересилань, але також є не дуже ефективним. З цих причин було розроблено деякі нові алгоритми сортування, що отримали назву швидких алгоритмів сортування. Це такі алгоритми, як сортування деревом, пірамідальне сортування, швидке сортування Хоара та метод цифрового сортування.

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

Необхідність відсортувати які-небудь величини виникає в програмуванні дуже часто. Існують ситуації, коли попереднє сортування даних дозволяє скоротити змістовну частину алгоритму в декілька разів, а час його роботи - у десятки разів.

Однак справедливе й зворотне. Яким би гарним і ефективним не був обраний алгоритм, але якщо в якості підзадачі він використовує "поганє" сортування, то вся робота з його оптимізації виявляється марною. Невдало реалізоване сортування вхідних даних здатне помітно знизити ефективність алгоритму в цілому.

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