
СД Практика 2
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)
АЛГОРИТМИЧЕСКАЯ СЛОЖНОСТЬ Отчет по практической работе №2 по дисциплине «Структуры данных»
Студент гр. 7х3-х
_______ ххххххх
_______
Принял: Преподаватель КИБЭВС
_______ Уразаев Д.Р.
_______
Томск 2024
Задание
Сгенерировать массивы заданной длины. Последовательно задайте длину массивов 1, 2, 3, 4, 5, 10, 15, 20,25, 30, 40,50, 75, 100,150,200,250, 300, 400, 500, 600, 800, 1000. Отсортировать все массивы при помощи ранее реализованных алгоритмов сортировки и подсчитать количество операций, выполненных для их сортировки (количество сравнений + количество перестановок) и время затраченное на сортировку массивов. Вывести на графики данные по числу операций, по времени сортировки в зависимости от размера массива (зависимость числа операций от размера массива, зависимость времени выполнения алгоритма от размера массива). Для каждой сортировки сделать разные графики.
2
|
|
Содержание |
|
1 |
Введение.............................................................................................................. |
4 |
|
2 |
ХОД РАБОТЫ.................................................................................................... |
5 |
|
|
2.1 |
Сортировка расческой............................................................................... |
5 |
|
2.2 |
Быстрая сортировка................................................................................... |
7 |
|
2.3 |
Сортировка вставками.............................................................................. |
9 |
3 |
Рассмотрение худших и лучших вариантов.................................................. |
12 |
|
Заключение........................................................................................................... |
13 |
||
Приложение А...................................................................................................... |
14 |
||
Приложение Б...................................................................................................... |
16 |
||
Приложение В...................................................................................................... |
19 |
3
1 Введение
Целью работы является овладеть навыками работы с простыми структурами данных на примере массивов, а также их сортировки тремя методами.
4

2 ХОД РАБОТЫ
2.1 Сортировка расческой
На рисунке 2.1 представлен результат работы программы по вычислению
алгоритмической сложности алгоритма сортировки расческой.
Рисунок 2.1 – Результат работы программы
В приложении А представлен листинг программы сортировки расческой. На рисунке 2.2 представлен график зависимости количества тактов от
размерности массива.
5

12000
10000
8000
6000
4000
2000
0
0 |
5 |
10 |
15 |
20 |
25 |
Рисунок 2.2 – График зависимости количества тактов от размерности массива
На рисунке 2.3 представлен график зависимости количества операций от размерности массива f(x) в сравнении с эталонными графиками функций.
30000
25000
20000
15000
10000
5000
0
0 |
200 |
400 |
600 |
800 |
1000 |
1200 |
y = n
y = n * log(n) y = n^2
y = n^3 y = f(x)
Рисунок 2.3 – График зависимости количества операций от размерности массива
6

Из графического отображения полученных данных можно увидеть, что график лежит между эталонными, что подтверждает теорию.
2.2 Быстрая сортировка
На рисунке 2.4 представлен результат работы программы по вычислению
алгоритмической сложности быстрой сортировки.
Рисунок 2.4 – Результат работы программы
В приложении Б представлен листинг программы быстрой сортировки. На рисунке 2.5 представлен график зависимости количества тактов от
размерности массива.
7

14000
12000
10000
8000
6000
4000
2000
0
0 |
5 |
10 |
15 |
20 |
25 |
Рисунок 2.5 – График зависимости количества тактов от размерности массива
На рисунке 2.6 представлен график зависимости количества операций от размерности массива f(x) в сравнении с эталонными графиками функций.
50000
45000
40000
35000
30000
25000
20000
15000
10000
5000
0
0 |
200 |
400 |
600 |
800 |
1000 |
1200 |
y = n
y = n * log(n) y = n^2
y = n^3 y = f(x)
Рисунок 2.6 – График зависимости количества операций от размерности массива
8

Из графического отображения полученных данных можно увидеть, что график лежит между эталонными, что подтверждает теорию.
2.3 Сортировка вставками
На рисунке 2.7 представлен результат работы программы по вычислению алгоритмической сложности сортировки вставками.
Рисунок 2.7 – Результат работы программы
В приложении В представлен листинг программы сортировки вставками. На рисунке 2.8 представлен график зависимости количества тактов от
размерности массива.
9

1200
1000
800
600
400
200
0
0 |
5 |
10 |
15 |
20 |
25 |
Рисунок 2.8 – График зависимости количества тактов от размерности массива
На рисунке 2.9 представлен график зависимости количества операций от размерности массива f(x) в сравнении с эталонными графиками функций.
14000
12000
10000
8000
6000
4000
2000
0
0 |
100 |
200 |
300 |
400 |
500 |
600 |
y = n
y = n * log(n) y = n^2
y = n^3 y = f(x)
Рисунок 2.9 – График зависимости количества операций от размерности массива
10