Практика 2(СД)
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
АЛГОРИТМИЧЕСКАЯ СЛОЖНОСТЬ Отчёт по практической работе №2
по дисциплине «Структуры данных»
Студент гр. 714-1
_______ И.С. Максимов
__.__.2025
Доцент кафедры КИБЭВС
_______ Е.Е. Лунёва
__.__.2025
Томск 2025
|
Содержание |
Введение................................................................................................................... |
3 |
1. Ход работы ........................................................................................................ |
4 |
Заключение .............................................................................................................. |
7 |
2
ОШИБКИ:
В работе представлены графики на рисунке 1.2. К сожалению, они не наглядны и представленные выводы в тексте по ним сделать нельзя. Например, на рисунке, связанном с быстрой сортировкой, есть кривая, число операций - что это за кривая не понятно. В тексте пояснений нет. Также присутствует кривая quicksort - по всей видимости это и есть экспериментальная кривая быстрой сортировки.
Смотрим выводы, в тексте идет отсылка об алгортимической оценке y=n log(n). К сожалению, по тексту не называется, что эта оценка О - верхняя, как того требует задание. Но даже если так, по графикам этого не видно. По графикам ,голубая линия должна быть выше экспериментальной кривой. А голубую линию вообще не видно. Получается выводы не соответствуют экспериментам.
Для соответствия, либо нужно было дополнительно представить фрагменты графиков, либо логарифмировать оси, либо делать другие выводы, которые соответствуют тому, что предсталено.
Остальные графики тоже самое.
Выводы не соответствуют экспериментальным данным.
Введение
Цель практической работы: изучить алгоритмическую сложность сортировки расческой, быстрой сортировки и сортировки выбором. Сравнить зависимость количества операций и времени от длины массива, и
проанализировать лучшие и худшие варианты.
3
1. Ход работы
Для выяснения зависимости числа операций и времени операций для
сортировки расческой, быстрой сортировки и сортировки выбором, данные
по сортировкам, а также худшие и лучшие варианты и эталонные функции
были выведены в файл (рисунок 1.1). Также эти данные представлены в
таблице 1. |
|
|
|
|
|
|
Таблица 1 – Данные о количестве операций и времени сортировок |
|
|||||
Элементов |
Операций |
Операций |
Операций |
Время |
Время |
Время |
в массиве |
в |
в быстрой |
в |
сортировк |
быстрой |
сортировки |
|
сортировк |
сортировк |
сортировк |
и |
сортиров |
выбором, |
|
е |
е |
е |
расческой, |
ки, мс |
мс |
|
расческой |
|
выбором |
мс |
|
|
1 |
0 |
0 |
0 |
101 |
7 |
5 |
2 |
2 |
3 |
2 |
98 |
5 |
4 |
3 |
5 |
8 |
4 |
70 |
2 |
1 |
4 |
8 |
14 |
8 |
64 |
4 |
3 |
5 |
12 |
23 |
13 |
62 |
5 |
3 |
10 |
48 |
59 |
53 |
66 |
9 |
6 |
15 |
85 |
96 |
117 |
18 |
15 |
12 |
20 |
146 |
150 |
205 |
26 |
20 |
16 |
25 |
208 |
190 |
319 |
38 |
24 |
21 |
30 |
258 |
230 |
463 |
47 |
29 |
30 |
40 |
428 |
331 |
816 |
64 |
41 |
43 |
50 |
584 |
447 |
1269 |
92 |
52 |
63 |
75 |
959 |
719 |
2848 |
137 |
87 |
90 |
100 |
1500 |
1003 |
5045 |
200 |
121 |
137 |
150 |
2571 |
1642 |
11320 |
312 |
187 |
248 |
200 |
3640 |
2475 |
20095 |
502 |
264 |
337 |
250 |
4773 |
3053 |
31369 |
669 |
329 |
442 |
300 |
6047 |
3798 |
45139 |
850 |
392 |
652 |
400 |
8627 |
5152 |
80190 |
1235 |
537 |
970 |
500 |
11367 |
7065 |
125240 |
1733 |
686 |
1350 |
600 |
14207 |
8058 |
180296 |
2303 |
824 |
2221 |
800 |
19843 |
11316 |
320394 |
3928 |
1194 |
3369 |
1000 |
25880 |
14439 |
500495 |
4966 |
1358 |
3731 |
4
Рисунок 1.1 – Данные о сортировках в файле
Затем, были созданы графики по количеству операций и времени относительно числа сортируемых элементов (рисунок 1.2) На графики с операциями также были внесены эталонные функции: y=n, y=n log(n), y=n^2, y=n^3.
Рисунок 1.2 – Графики зависимостей
Согласно данным графикам, форма зависимости числа операций от количества элементов в массиве у сортировки расческой и быстрой сортировки больше совпадает с эталонной функцией y=n log(n), тогда как у сортировки выбором происходит резкий скачок числа операций, больше совпадающий с функцией y=n^2.
5
Данные результаты соответствуют лучшему случаю сортировки расческой, среднему случаю быстрой сортировки и худшему случаю
сортировки выбором.
Также были сделаны лучшие и худшие случаи сортировок массива из
100 элементов. Лучший случай – отсортированный массив, худший – отсортированный в обратном порядке массив. Результаты по количеству
операций и времени представлены в таблице 2, 3.
Таблица 2 – Лучший случай сортировок
Количеств |
Операций |
Время |
Операций |
Время |
в |
Операций |
Время в |
|||
о |
в |
в |
в быстрой |
быстрой |
|
|
в |
сортировк |
||
операций |
сортировк |
сортировк |
сортировк |
сортировке |
сортировк |
е |
||||
|
е |
е |
е |
, мс |
|
|
е |
выбором, |
||
|
расческой |
расческой, |
|
|
|
|
выбором |
мс |
||
|
|
мс |
|
|
|
|
|
|
|
|
100 |
1233 |
52 |
669 |
24 |
|
|
1006 |
|
27 |
|
Таблица 3 – Худший случай сортировок |
|
|
|
|
|
|
|
|||
Количеств |
Операций |
Время |
Операций |
Время |
в |
|
Операций |
|
Время |
|
о |
в |
в |
в быстрой |
быстрой |
|
|
в |
|
в |
|
операций |
сортировк |
сортировк |
сортировк |
сортировк |
|
сортировк |
|
сортировк |
|
|
|
е |
е |
е |
е |
|
|
е |
|
е |
|
|
расческой |
расческой |
|
|
|
|
выбором |
|
выбором |
|
100 |
1339 |
67 |
722 |
29 |
|
|
1882 |
|
57 |
|
Результаты лучшего и худшего случая не совпадают с обычным: они
получились лучше.
6
Заключение
В ходе работы была изучена алгоритмическая сложность на примере сортировки расческой, быстрой сортировки и сортировки выбором.
Количество операций увеличивается пропорционально соответствующим алгоритмическим сложностям сортировок (лучший случай для сортировки расческой, средний случай для быстрой сортировки и худший случай для сортировки выбором), однако в худшем и лучшем варианте получившиеся значения не соответствуют расчетным.
7
