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

Кіровоградський Державний Технічний університет

Кафедра програмного забезпечення

 

 

 

 

 

 

 

Курсовий проект

з дисципліни

“Програмування на мові ASM-86"

на тему:

“Програма для сортування даних методом піраміди ”


Зміст

1. Вступ

2. Постановка задачі

3. Обгрунтування вибору методів розв’язку задачі

4. Алгоритм програми

5. Реалізація програми

6. Системні вимоги

7. Інструкція для користувача

Висновки

Використана література

Додаток


1. Вступ

В наш час нові інформаційні технології посідають дуже важливе місце не лише в спеціалізованих, але й в повсякденних сферах життя. Комп’ютери застосовуються в бізнесі, менеджменті, торгівлі, навчанні та багатьох інших сферах діяльності людини.

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

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

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

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

Взагалі, відомо, що в будь-якій сфері діяльності, що використовує комп’ютер для запису, обробки та збереження інформації, усі дані зберігаються в базах даних, які також потребують сортування. Певна впорядкованість для них дуже важлива, адже користувачеві набагато легше працювати з даними, що мають певний порядок. Так, можна розташувати всі товари по назві або відомості про співробітників чи студентів за прізвищем або роком народження, тощо.

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

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

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


2. Постановка задачі

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

 

3. Обгрунтування вибору методів розв’язку задачі

Алгоритм пірамідального сортування HeapSort використовує представлення масиву у виді дерева. Цей алгоритм не вимагає допоміжних масивів, сортуючи “на місці". Розглянемо спочатку метод представлення масиву у виді дерева:

Нехай A [1. n] - деякий масив. Зіставимо йому дерево, використовуючи наступні правила:


1. A [1] - корінь дерева;

2. Якщо A [i] - вузол дерева і 2i £ n,

то A [2*i] - вузол - “лівий син" вузла A [i]

3. Якщо A [i] - вузол дерева і 2i + 1 £ n,

то A [2*i+1] - вузол - “правий син" вузла A [i]

Правила 1-3 визначають у масиві структуру дерева, причому глибина дерева не перевершує [log2 n] + 1. Вони ж задають спосіб руху по дереву від кореня до листків. Рух вгору задається правилом 4:


Информация о работе «Програма для сортування даних методом піраміди»
Раздел: Информатика, программирование
Количество знаков с пробелами: 12971
Количество таблиц: 0
Количество изображений: 1

Похожие работы

Скачать
7299
1
84

... іб руху по дереву від кореня до листків. Рух вгору задається правилом 4: 4. Якщо A[i] - вузол дерева та i > 1, то A[i mod 2] - вузол - “батько” вузла A[i]; Вхідні – вихідні дані Для роботи з даною програмою та алгоритму пірамідального сортування взагалі, нам необхідно ввести елементи масиву визначеної довжини, який необхідно відсортувати. В результаті роботи програми ми отримаємо ві ...

Скачать
43832
1
0

... сортування включенням; - сортування вибором; - сортування обміном. У курсовій роботі ми детально розглянемо швидкі алгоритми сортування елементів масиву, проведемо їх порівняльний аналіз. Крім цього, розглянемо і прямі методи сортування, їх позитиви і недоліки, що дасть змогу краще визначити ефективність і складність швидких алгоритмів сортування. Розділ І. Прямі методи сортування масивів   ...

Скачать
39276
23
35

... оцінка складності алгоритму - О(n*log(n)). Даний алгоритм має сенс застосування лише на великих обсягах даних від 500-1000 елементів. Тільки в цьому випадку можна побачити виграш алгоритму в ефективності. Для менших обсягів даних він малопридатний. 3 Синтез машини Тьюрінга 3.1 Загальні відомості Машина Тьюрінга - це кінцевий автомат, забезпечений безкінченою стрічкою і читаючою/записуючою голівкою ...

Скачать
133393
30
25

... ; 11 - канал конвеєра; 12 - відкрита частина конвеєра; 13,14,15 - вентилятори; 16 - теплообмінник Рисунок 2.6 - Потоково-конвеєрна лінія Буде встановлено 2 потоково-конвеєрних ліній для виробництва плиток для підлоги продуктивністю 400 тис м²/рік. 2.5.11 Розрахунок складу готової продукції При розрахунку складу готової продукції необхідно знати запас виробів, вид упаковки, площу, що ...

0 комментариев


Наверх