- •Поняття алгоритму. Властивості алгоритмів. Виконавці алгоритмів. Математичні основи аналізу алгоритмів (о нотація).
- •Базові структури алгоритмів. Основні властивості базових структур алгоритмів.
- •Алгоритми сортування, їх характеристики та оцінка.
- •Алгоритм сортування методом прямого обміну.
- •Алгоритм сортування методом вставки.
- •Алгоритм сортування методом Шелла.
- •Алгоритм сортування методом Хоара.
- •Алгоритм сортування пірамідальним методом.
- •Основні структури даних.
- •Алгоритми шифрування інформації. Загальна характеристика, класифікація.
- •Алгоритм шифрування rsa.
- •Компілятори інтерпретатори, основні поняття.
- •Списки, черги основні поняття. Приклади реалізації.
- •Зворотня польська нотація. Основні поняття , використання.
- •Графи , алгоритм Дейкстри
Алгоритм сортування методом прямого обміну.
Сортування обміном або Сортування бульбашкою є простим алгоритмом сортування. Алгоритм працює наступним чином — у поданому наборі даних порівнюються два сусідні елементи. Якщо один з елементів, не відповідає критерію сортування то ці два елементи міняються місцями. Прохід по списку продовжується до тих пір, доки дані не будуть відсортованими. Оскільки для роботи з елементами масиву він використовує лише порівняння, це сортування на основі порівнянь.
Складність алгоритму у найгіршому у середньостатистичному випадку рівна О(n²), де n — кількість елементів для сортування. Існує чимало значно ефективніших алгоритмів, наприклад, з найгіршою ефективністю рівною O(n log n). Тому даний алгоритм має низьку ефективність у випадках, коли N є досить великим, за винятком рідких конкретних випадків, коли заздалегідь відомо, що масив з самого початку буде добре відсортований.
----------------------------------------------------
Алгоритм сортування методом вставки.
Сортування вставками, так само як і сортування методом простого вибору, звичайно застосовується для масивів, що не містять повторюваних елементів. Сортування методом прямого включення, як і всі описані вище, проводиться по кроках. На к-м кроці вважається, що частина масиву, що містить перші k-1 елементів, вже впорядкована, тобто а[1]<[к-l]. Далі необхідно узяти k-й елемент і підібрати для нього таке місце у відсортованій частині масиву, щоб після його вставки впорядкованість не порушилася, тобто треба знайти таке j (1<=j<=k-1), що а[j ]<=a[k].
8 23 5 65 44 33 1 6 1 23 5 65 44 33 8 6 1 5 23 65 44 33 8 6 1 5 6 65 44 33 8 23 1 5 6 8 44 33 65 23 1 5 6 8 33 44 65 23 1 5 6 8 23 44 65 33 1 5 6 8 23 33 65 44 1 5 6 8 23 33 44 65
----------------------------------------------------
Алгоритм сортування методом Шелла.
8 23 5 65 44 33 1 6 Фаза 1 (відстань 4) 8 23 5 65 44 33 1 6 8 23 5 65 44 33 1 6 8 23 1 65 44 33 5 6 8 23 1 6 44 33 5 65 Фаза 2 (2) 1 23 8 6 44 33 5 65 1 23 8 6 44 33 5 65 1 23 8 6 5 33 44 65 1 23 5 6 8 33 44 65 1 6 5 23 8 33 44 65 1 6 5 23 8 33 44 65 1 6 5 23 8 33 44 65 Фаза 3 (1) 1 6 5 23 8 33 44 65 1 5 6 23 8 33 44 65 1 5 6 23 8 33 44 65 1 5 6 8 23 33 44 65 1 5 6 8 23 33 44 65 1 5 6 8 23 33 44 65 1 5 6 8 23 33 44 65
Інша назва сортування вставками зі зменшенням відстані. Для масиву з 2n елементами алгоритм працює в такий спосіб. На першій фазі відбувається сортування включенням усіх пар елементів масиву, відстань між який дорівнює 2(n-1). На другій фазі виробляється сортування включенням елементів отриманого масиву, відстань між який дорівнює 2(n-2). І так далі, поки ми не дійдемо до фази з відстанню між елементами, рівної одиниці, і не виконаємо завершальне сортування з включеннями. У загальному випадку алгоритм Шелла природно переформулюється для заданої послідовності з t відстаней між елементами h1, h2, ..., ht, для яких виконуються умови h1 = 1 і h(і+1) < hі. Дональд Кнут показав, що при правильно підібраних t і h складність алгоритму Шелла є O(n(1.2)), що істотно менше складності простих алгоритмів сортування.