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

4. Завдання на лабораторну роботу

4.1. Вибір варіанта індивідуального завдання

Введемо позначення: DN – день народження

MN – місяць народження

А1 – ASCII-код першої літери прізвища – велика латинська літера

№ варіанта = ( DN + MN + А1 ) % 25+ 1

4.2. Варіанти завдань

Загальна частина:

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

Провести дослідження побудованого методу за схемою:

1) Обґрунтувати вибір структури даних, в якій має зберігатись інформація (масив чи список; якщо список, то однозв’язаний чи двозв’язаний).

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

3) Дослідити метод cортування на стійкість.

4) Дослідити метод cортування на економність використання пам’яті.

5) Дослідити метод на можливу специфіку вхідної послідовності (чи може послідовність містити елементи з однаковими ключами, чи має бути вхідна послідовність частково відсортована, чи мають елементи послідовності знаходитись у певному діапазоні і т.п.).

6) Дослідити ефективність методу. Для цього програмно визначити значення кількості порівнянь (С) і кількості перестановок (М) в найкращому ( ) і в найгіршому ( ) випадках. Середні значення кількості порівнянь ( ) і кількості перестановок ( ) визначити, як середнє арифметичне для кожної величини від великої кількості спроб сортування випадкових послідовностей. Побудувати графіки залежностей , , , від кількості елементів n, де n змінюється від 1 до 100 000.

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

Індивідуальні завдання:

  1. Сортування методом простої вставки.

  2. Сортування просіюванням з барьером.

  3. Сортування бінарною вставкою.

  4. Сортування методом простого вибору.

  5. Сортування методом простого обміну.

  6. Шейкер-сортування.

  7. Сортування Шелла, що використовує кроки 9, 5, 3 і 1

  8. Сортування Шелла, що обчислює послідовність приростів по першій формулі.

  9. Сортування Шелла, що обчислює послідовність приростів по другій формулі.

  10. Пірамідальне сортування.

  11. Швидке сортування.

  12. Сортування злиттям.

  13. Порозрядне сортування.

  14. Бітове сортування.

  15. Сортування методом підрахунку порівнянь [1, 94-97 c.].

  16. Сортування методом підрахунку розпреділення [1, 97-98 c.].

  17. Сортування з обчисленням адреси [1, 118-121 c.], [2, 469-472 c.].

  18. Обмінне сортування зі злиттям [1, 131-133 c.].

  19. Обмінне порозрядне сортування [1, 144-150 c.].

  20. Сортування методом двохшляхового злиття [1, 181-182 c.].

  21. Сортування методом природного двохшляхового злиття [1, 183-185 c.].

  22. Сортування методом простого двохшляхового злиття [1, 186-187 c.].

  23. Сортування методом злиття списків [1, 187-189 c.].

  24. Порозрядне сортування списку [1, 195-200 с.]

  25. Сортування за допомогою вставок і злиття [1, 208-210 c.].

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