Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_lab_TA-2004-ukr.doc
Скачиваний:
2
Добавлен:
17.11.2019
Размер:
8.76 Mб
Скачать

2.4 Контрольні запитання та завдання

  1. Які задачі доцільно вирішувати з використанням рекурсії?

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

  3. Які основні операції визначають рекурсивний підхід до розв’язання задач?

  4. Які обмеження накладає рекурсивний підхід до розв’язання задач?

3 Розв’язання задач з використанням алгоритмів сортування

3.1 Мета роботи

Вивчити й освоїти основні методи сортувань. Навчитися правильно вибирати методи сортувань у залежності від розподілів значень відсортованих даних.

3.2 Підготовка до роботи

Необхідно ознайомитися з основними методами сортувань [1, с. 150-164; 2, с. 110-114].

Сортування масивів (внутрішнє сортування) і сортування файлів (зовнішнє сортування).

Внутрішнє сортування – це таке сортування, при якому всі елементи сортованої послідовності вміщаються в оперативній пам'яті машини.

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

Задача сортування полягає в наступному: задана деяка послідовність числових даних . Потрібно переставити елементи послідовності таким чином, щоб одержати упорядковану за деяким законом послідовність , у якій для будь-якого 1<=i<=n елемента виконується задане деякої функції, що упорядковує f відношеня Наприклад,

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

Метод сортування називають стійким, якщо в процесі сортування відносне розташування елементів з рівними ключами не змінюється. Наприклад, для послідовності 4567776 сортування закінчиться на 7 при

if ( a[i] <= a[i-1] )

while(is)

{ is=0;

for (i=m+1; i<=n; i++)

if ( a[i] <= a[i-1] )

{ c=a[i];

a[i]=a[i-1];

a[i-1]=c;

is=1;

}

Стійкість найбільш важлива, коли мова йде про вже упорядковані, по деяким вторинним ключам, послідовності.

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

Мірою ефективності алгоритмів сортування звичайно служать: C – число необхідних порівнянь ключів; M – число пересилань (перестановок) елементів.

Зазвичай алгоритм вважається вдалим, якщо він вимагає порядку порівнянь (ускладнені методи), і невдалим, якщо він вимагає порівнянь ключів (прямі методи). Тут n – число сортованих елементів.

Ускладнені методи вимагають невеликого числа операцій, але ці операції самі по собі складні, і тому при досить малих n прямі методи виявляються швидше.

Методи сортування "на тім же місці" поділяються на три категорії:

  1. сортування вставками чи включенням;

  2. сортування вибором;

  3. сортування обміном.

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

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