Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практики(Вариант №1) / Практическая работа №2.pdf
Скачиваний:
0
Добавлен:
23.02.2026
Размер:
351.69 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР) Кафедра безопасности информационных систем (БИС)

АЛГОРИТМИЧЕСКАЯ СЛОЖНОСТЬ Отчет по практической работе №2 по дисциплине «Структуры данных»

Студент гр.

________

__.__.2025

Принял

Преподаватель кафедры КИБЭВС

________ Е.Е. Лунева __.__.2025

Томск 2025

Задание

Сгенерировать массивы заданной длины.

Последовательно задайте длину массивов 1, 2, 3, 4, 5, 10, 15, 20,25, 30, 40,50, 75, 100,150,200,250, 300, 400, 500, 600, 800, 1000.

Отсортировать все массивы при помощи ранее реализованных алгоритмов сортировки (т.е те, которые реализованы на практике 1) и подсчитать количество операций, выполненных для их сортировки (количество сравнений + количество перестановок) и время затраченное на сортировку массивов.

1.Вывести на графики данные по числу операций, по времени сортировки в зависимости от размера массива (зависимость числа операций от размера массива, зависимость времени выполнения алгоритма от размера массива). Для каждой сортировки сделайте разные графики.

2.На каждый график сортировки с числом операций выведете график эталонных функций: : y=n, y=n*log(n), y=n^2, y=n^3 (зависимость числа операций от размера массива). ТАБЛИЦЫ с замерами числа операций и времени также представьте в отчете.

3.Сделать выводы об алгоритмической сложности каждого алгоритма оценив форму графиков зависимости из пункта 2. Написать текст вывода в отчете.

4.Для каждой рассмотренной сортировки сгенерировать лучший и худший варианты (массивы длиной 100 элементов) и получить значения для них по числу операций и перестановок и времени сортировки. Проделать по 5 экспериментов а каждую сортировку и усреднить значения. Лучший вариант - это уже отсортированный массив. Худший вариант - это отсортированный в обратном направлении массив. Сделать выводы. Результаты представить в таблице.

5.Сформировать отчет с разделами:

2

 

Оглавление

 

Задание...................................................................................................................

2

Введение.................................................................................................................

4

1

ХОД РАБОТЫ....................................................................................................

5

2

АЛГОРИТМИЧЕСКАЯ СЛОЖНОСТЬ.........................................................

11

Заключение...........................................................................................................

12

Приложение А......................................................................................................

13

Приложение Б......................................................................................................

14

Приложение В......................................................................................................

16

3

Введение

Целью данного задания является исследование производительности различных алгоритмов сортировки (быстрой сортировки, сортировки выбором, сортировки расчёской), с учетом их временной сложности и количества операций (сравнений и перестановок), выполняемых при сортировке массивов разной длины.

4

 

 

 

1 ХОД РАБОТЫ

 

 

Сортировка расческой: Сложность ближе к O(n*logn), но может

отклоняться от неё на больших данных. (рис. 1) Также она находится между

O(n^2) и Ω(n*log(n).

 

 

 

 

 

 

 

 

Расческой

 

 

30000

 

 

 

 

 

 

25000

 

 

 

 

 

 

20000

 

 

 

 

 

 

 

 

 

 

 

 

Расческой

15000

 

 

 

 

 

y=n

 

 

 

 

 

y=n*log(n)

 

 

 

 

 

 

 

 

 

 

 

 

y=n^2

10000

 

 

 

 

 

y=n^3

 

 

 

 

 

 

5000

 

 

 

 

 

 

0

 

 

 

 

 

 

0

200

400

600

800

1000

1200

Рисунок 1 — Зависимость числа операций от размера массива сортировки

расческой

5

 

 

Зависимость времени от размера массива

 

 

0,16

 

 

 

 

 

 

0,14

 

 

 

 

 

 

0,12

 

 

 

 

 

 

0,1

 

 

 

 

 

 

0,08

 

 

 

 

 

 

0,06

 

 

 

 

 

 

0,04

 

 

 

 

 

 

0,02

 

 

 

 

 

 

0

 

 

 

 

 

 

0

200

400

600

800

1000

1200

Рисунок 2 — Зависимость времени от размера массива сортировки расческой

Рисунок 3 — Таблица данных для сортировки расческой

6

Быстрая сортировка: Имеет сложность O(n*logn), что подтверждается

графиком — растёт почти как серая линия. (рис. 4). Также она находится между

O(n^2) и Ω(n*log(n).

 

 

 

 

 

 

 

 

Быстрая

 

 

 

30000

 

 

 

 

 

 

25000

 

 

 

 

 

 

20000

 

 

 

 

 

 

 

 

 

 

 

 

Быстрая

15000

 

 

 

 

 

y=n

 

 

 

 

 

y=n*log(n)

 

 

 

 

 

 

 

 

 

 

 

 

y=n^2

10000

 

 

 

 

 

y=n^3

 

 

 

 

 

 

5000

 

 

 

 

 

 

0

 

 

 

 

 

 

0

200

400

600

800

1000

1200

Рисунок 4 — Зависимость числа операций от размера массива быстрой

 

 

 

сортировки

 

 

7

 

 

Зависимость времени от размера массива

 

 

0,45

 

 

 

 

 

 

0,4

 

 

 

 

 

 

0,35

 

 

 

 

 

 

0,3

 

 

 

 

 

 

0,25

 

 

 

 

 

 

0,2

 

 

 

 

 

 

0,15

 

 

 

 

 

 

0,1

 

 

 

 

 

 

0,05

 

 

 

 

 

 

0

 

 

 

 

 

 

0

200

400

600

800

1000

1200

Рисунок 5 — Зависимость времени от размера массива быстрой сортировки

Рисунок 6 — Таблица данных для быстрой сортировки

8

Сортировка выбором: Имеет квадратичную сложность O(n^2), что видно

по близости к жёлтой линии. (рис. 7). Также она находится между O(n^2) и

Ω(n*log(n)).

 

 

 

 

 

 

 

 

 

Обменом

 

 

600000

 

 

 

 

 

 

500000

 

 

 

 

 

 

400000

 

 

 

 

 

 

 

 

 

 

 

 

Обменом

300000

 

 

 

 

 

y=n

 

 

 

 

 

y=n*log(n)

 

 

 

 

 

 

 

 

 

 

 

 

y=n^2

200000

 

 

 

 

 

y=n^3

 

 

 

 

 

 

100000

 

 

 

 

 

 

0

 

 

 

 

 

 

0

200

400

600

800

1000

1200

Рисунок 7 — Зависимость числа операций от размера массива сортировки

выбором

9

 

 

Зависимость времени от размера массива

 

 

1,8

 

 

 

 

 

 

1,6

 

 

 

 

 

 

1,4

 

 

 

 

 

 

1,2

 

 

 

 

 

 

1

 

 

 

 

 

 

0,8

 

 

 

 

 

 

0,6

 

 

 

 

 

 

0,4

 

 

 

 

 

 

0,2

 

 

 

 

 

 

0

 

 

 

 

 

 

0

200

400

600

800

1000

1200

Рисунок 8 — Зависимость времени от размера массива сортировки выбором

Рисунок 9 — Таблица данных для сортировки выбором

10

Соседние файлы в папке Практики(Вариант №1)