Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція по масивам.doc
Скачиваний:
6
Добавлен:
24.11.2019
Размер:
204.29 Кб
Скачать

5.3 Методи сортування масивів

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

Для оцінки швидкодії алгоритмів різних методів сортування, як правило, використають два показники:

- кількість присвоєнь;

- кількість порівнянь.

Всі методи сортування можна розділити на дві більші групи:

- прямі методи сортування;

- поліпшені методи сортування.

Прямі методи сортування за принципом, що лежить в основі методу, у свою чергу, розділяються на три підгрупи:

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

2) сортування вибором (виділенням);

3) сортування обміном ("бульбашкове" сортування).

Поліпшені методи сортування ґрунтуються на тих же принципах, що й прямі, але використають деякі оригінальні ідеї для прискорення процесу сортування. Прямі методи на практиці використаються досить рідко, тому що мають відносно низьку швидкодію. Однак вони добре показують суть базованих на них поліпшених методів. Крім того, у деяких випадках (як правило, при невеликій довжині масиву й/або особливому вихідному розташуванні елементів масиву) деякі із прямих методів можуть навіть перевершити поліпшені методи.

 

Далі ми розглянемо прямі методи сортування:

- сортування вставкою (включенням);

- сортування вибором (виділенням);

- сортування обміном ("бульбашкове" сортування).

 

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

Сортування масивів методом вставки(включенням) здійснюються таким чином.

Масив розділяється на дві частини: відсортовану й невідсортовану. Елементи з невідсортованої частини по черзі вибираються й вставляються у відсортовану частину так, щоб не порушити в ній упорядкованість елементів. На початку роботи алгоритму за відсортовану частину масиву приймають тільки один перший елемент, а за невідсортовану частину - всі інші елементи.

Таким чином, алгоритм буде складатися з n-1-го проходу (n - розмірність масиву), кожний з яких буде включати чотири дії:

взяття чергового i-го невідсортованого елемента й збереження його в додатковій змінній;

- пошук позиції j у відсортованій частині масиву, у якій наявність узятого елемента не порушить упорядкованості елементів;

- зсув елементів масиву від i-1-го до j-го вправо, щоб звільнити знайдену позицію вставки;

- вставка взятого елемента в знайдену j-ю позицію.

Для реалізації даного методу можна запропонувати кілька алгоритмів, які будуть відрізнятися способом пошуку позиції вставки. Розглянемо схему реалізації одного з можливих алгоритмів.

Схематично описані дії можна представити таким чином:

Малюнок 5.2

Малюнок 5.3

Сортування вибором.

Сортування масивів методом вибору (виділення) здійснюються таким чином.

Знаходимо (вибираємо) у масиві елемент із мінімальним значенням на інтервалі від 1- го елемента до n-го (останнього) елемента й міняємо його місцями з першим елементом. На другому кроці знаходимо елемент із мінімальним значенням на інтервалі від 2-го до n-го елемента й міняємо його місцями із другим елементом.

І так далі для всіх елементів до n-1-го.

Розглянемо схему алгоритму прямого вибору.

Малюнок 5.4

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