- •Алгоритм «Сортировка выбором» (Selection Sort)
- •Цель работы.
- •Блок-схема программы для сортировки выбором.
- •Текст программы 1 (cортировка по выбору).
- •Листинг 1.
- •Текст программы 2 (s(1000)).
- •Листинг 2.
- •Текст программы 3 (s(10000)).
- •Листинг 3.
- •Текст программы 4 (s(100000)).
- •Листинг 4.
- •Таблицу времени выполнения и числа перестановок от размерности вектора, таблицу с коэффициентами KN, Kt, Km
- •Вывод.
- •3.2 Алгоритм «Сортировка пузырьком» (Bubble Sort)
- •Текст программы 1 (cортировка пузырьком).
МИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА) Кафедра физической электроники и технологии
ОТЧЕТ по лабораторной работе №3
по дисциплине «Информационные технологии» Тема: Алгоритмы и программы решения задач комбинаторики
Студентка гр. 0207 |
|
Лиоско Е.П. |
|
Преподаватель |
|
|
Рябцев И.А. |
Санкт-Петербург
2021
Алгоритм «Сортировка выбором» (Selection Sort)
Цель работы.
Изучение и программирование стандартного алгоритма сортировки выбором.
Блок-схема программы для сортировки выбором.
Текст программы 1 (cортировка по выбору).
clc;
clear all; N=7;
M=0;
s=[10 8 3 28 11 4 1]; tic;
2
for i=1:(N-1)% пробег по всему массиву кроме последнего элемента
MIN=i;
for j=i+1:N % в поисках минимального элемента
if (s(j)<s(MIN))% если j элемент массива меньше минимального элемента
MIN=j;
end
end
P=s(i);
s(i)=s(MIN);
s(MIN)=P;
M=M+1;% количество перестановок
end toc;
disp(s);
disp(M);
Листинг 1.
Elapsed time is 0.018125 seconds.
1 |
3 |
4 |
8 |
10 |
11 |
28 |
6 |
|
|
|
|
|
|
Текст программы 2 (s(1000)).
clc;
clear all; N=1000; M=0;
s=fix(50*rand ([1 1000])); tic;
for i=1:(N-1)% пробег по всему массиву кроме последнего элемента
MIN=i;
for j=i+1:N % в поисках минимального элемента
if (s(j)<s(MIN))% если j элемент массива меньше минимального элемента
MIN=j;
end
end
P=s(i);
3
s(i)=s(MIN);
s(MIN)=P;
M=M+1;% количество перестановок
end toc;
disp(M);
Листинг 2.
Elapsed time is 0.014916 seconds. 999
Текст программы 3 (s(10000)).
clc;
clear all; N=10000; M=0;
s=fix(50*rand ([1 10000])); tic;
for i=1:(N-1)% пробег по всему массиву кроме последнего элемента
MIN=i;
for j=i+1:N % в поисках минимального элемента
if (s(j)<s(MIN))% если j элемент массива меньше минимального элемента
MIN=j;
end
end
P=s(i);
s(i)=s(MIN);
s(MIN)=P;
M=M+1;% количество перестановок
end toc;
disp(M);
Листинг 3.
Elapsed time is 0.188454 seconds.
4
9999
Текст программы 4 (s(100000)).
clc;
clear all; N=100000; M=0;
s=fix(50*rand ([1 1000])); tic;
for i=1:(N-1)% пробег по всему массиву кроме последнего элемента
MIN=i;
for j=i+1:N % в поисках минимального элемента
if (s(j)<s(MIN))% если j элемент массива меньше минимального элемента
MIN=j;
end
end
P=s(i);
s(i)=s(MIN);
s(MIN)=P;
M=M+1;% количество перестановок
end toc;
disp(M);
Листинг 4.
Elapsed time is 18.157203 seconds. 99999
Таблицу времени выполнения и числа перестановок от размерности вектора, таблицу с коэффициентами KN, Kt, Km
i |
N |
t, сек |
m |
1 |
1000 |
0,014916 |
999 |
2 |
10000 |
0,188454 |
9999 |
3 |
100000 |
18,157203 |
99999 |
i-j |
KN |
Kt |
Km |
1-2 |
10 |
12,634352 |
10,00901 |
5