- •З дисципліни "Структури даних і алгоритми"
- •2 Семестр 2010/2011
- •Дослідження ефективності методів сортування: №1 методу прямої вставки, №4 методу прямого вибору, №3 методу прямого обміну.
- •Технічне завдання на курсову роботу з дисципліни
- •1. Впорядкувати окремо кожен переріз тривимірного масиву а [p,m,n] наскрізно по рядках за незменшенням.
- •1. Алгоритм сортування №1 методу прямої вставки (з лінійним пошуком місця вставки від початку послідовності, що сортується , або «зліва»).
- •2. Алгоритм сортування №4 методу прямого вибору.
- •1 Прохід
- •4 Прохід
- •3. Алгоритм сортування №3 методу прямого обміну (із запам’ятовуванням місця останньої перестановки).
- •2 Прохід
- •7Прохід
- •Зв‘язки між модулями та головною програмою:
- •Опис призначення модулів, процедур та функцій
- •Текст програми
- •Результати:
- •Порівняльний аналіз алгоритмів Характеристика алгоритмів для сортування одновимірного масиву:
- •Порівняльна характеристика алгоритмів при сортуванні одновимірних і двовимірних масивів:
- •Порівняльна характеристика методів сортування багатовимірних масивів між собою:
- •Характеристика впливу різних геометричних розмірів багатовимірних масивів:
- •Список вживаної літератури:
7Прохід
А
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8=n |
2 |
3 |
5 |
7 |
8 |
11 |
14 |
16 |
{R=1}
Умова: R>1 => false =>
Маємо відсортований масив:
А
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8=n |
2 |
3 |
5 |
7 |
8 |
11 |
14 |
16 |
Загальновідома оцінка роботи цього алгоритму:
За Віртом для масиву з 256 елементами: 1,64 с. – найкращий випадок, 1,18 – середній, 2,8 – найгірший.
Алгоритм має вигляд(для одновимірного масиву):
program Exchange3;
const n=10;
type
TVector=array[1..n] of integer;
var
A : TVector;
B : integer;
i, R, k : word;
Begin
for i:=1 to n do read(A[i]);
readln;
R:=n;
while R>1 do
begin
k:=1;
for i:=1 to R-1 do
if A[i] > A[i+1] then
begin
B:=A[i];
A[i]:=A[i+1];
A[i+1]:=B;
k:=i;
end;
R:=k;
end;
for i:=1 to n do write(A[i]:8);
writeln;
End.
Зв‘язки між модулями та головною програмою:
Опис призначення модулів, процедур та функцій
unit MAINMENU — модуль, в якому сформоване меню програми. Головна програма складається з виклику однієї процедури цього модуля;
procedure MainMenuDisplay – заставка головного меню програми;
procedure MainMenuWork – процедура головного меню програми;
procedure MenuMas – меню заповнення масиву(потрібно обрати один з трьох варіантів заповнення масиву);
procedure MenuTmp1 – проміжний крок меню(можна переглянути будь-який переріз початкового масиву);
procedure MenuTmp2 – останній крок меню (можна переглянути будь-який переріз відсортованого масиву, або повернутися до головного меню);
procedure MenuSort – відбувається вибір алгоритму для сортування масиву;
procedure Alg1Watch – відбувається вивід на екран таблиці з вимірами роботи алгоритмів;
unit SORT – модуль, в якому знаходять всі алгоритми сортування масиву;
procedure Vstavka1 – процедура, яка виконує алгоритм сортування методом прямої вставки №1;
procedure Vibir4 – процедура, яка виконує алгоритм сортування методом прямого вибору №4;
procedure Obmin3 – процедура, яка виконує алгоритм сортування методом прямого обміну №3;
procedure Vstavka1_1d – процедура, яка виконує алгоритм сортування методом прямої вставки №1 для одновимірного масиву;
procedure Vibir4_1d – процедура, яка виконує алгоритм сортування методом прямого вибору №4 для одновимірного масиву;
procedure Obmin3_1d – процедура, яка виконує алгоритм сортування методом прямого обміну №3 для одновимірного масиву;
unit MAS – модуль, який призначений для 3-х випадків заповнення матриці;
procedure SortMas – процедура, яка заповнює масив відсортованими елементами;
procedure UnSortMas – процедура, яка заповнює масив не відсортованими елементами;
procedure BackSortMas – процедура, яка заповнює масив відсортованими навпаки елементами;
procedure SortMas_1D – процедура, яка заповнює одновимірний масив відсортованими елементами;
procedure UnSortMas _1D – процедура, яка заповнює одновимірний масив не відсортованими елементами;
procedure BackSortMas1_D – процедура, яка заповнює одновимірний масив відсортованими навпаки елементами;
procedure MonitorMatrix – процедура, яка виводить на екран один з розрізів;
function ResTime – функція, яка вимірює час сортування масиву;
unit BATCH – модуль, який призначений для пакетного запуску програми;
procedure BatchAlg1 – процедура, яка виконує всі випадки сортування масиву методом прямої вставки №1;
procedure BatchAlg2 – процедура, яка виконує всі випадки сортування масиву методом прямого вибору №4;
procedure BatchAlg3 – процедура, яка виконує всі випадки сортування масиву методом прямого обміну №3;
procedure BatchAlg1_1D – процедура, яка виконує всі випадки сортування одновимірного масиву методом прямої вставки №1;
procedure BatchAlg2_1D – процедура, яка виконує всі випадки сортування одновимірного масиву методом прямого вибору №4;
procedure BatchAlg3_1D – процедура, яка виконує всі випадки сортування одновимірного масиву методом прямого обміну №3;
unit Common – модуль, в якому зберігаються спільні для усіх модулів структури даних.
