
СД Практика 1
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)
СОРТИРОВКИ МАССИВОВ Отчет по практической работе №1 по дисциплине «Структуры данных»
Студент гр. 7х3-х
_______ ххххххххх
_______
Принял: Преподаватель КИБЭВС
_______ Уразаев Д.Р.
_______
Томск 2024
Задание
Реализуйте сортировку расческой, быструю сортировку и еще одну по варианту. Продемонстрируйте на входных данных работоспособность вашего приложения и корректность реализации алгоритма сортировки. Реализуйте соответствующий варианту задания генератор входных данных.
Не используйте дополнительные массивы при реализации всех сортировок.
Размер массива выбирайте в диапазоне 20-100 элементов.
Вариант 2. Третья сортировка - сортировка вставками. Входные данные представлены попеременно отрицательными и положительными числами [- 10^6, +10^6].
2
|
|
Содержание |
|
1 |
Введение.............................................................................................................. |
4 |
|
2 |
ХОД РАБОТЫ.................................................................................................... |
5 |
|
|
2.1 |
Сортировка расческой............................................................................... |
5 |
|
2.2 |
Быстрая сортировка................................................................................... |
5 |
|
2.3 |
Сортировка вставками.............................................................................. |
5 |
3 |
Алгоритмическая сложность............................................................................. |
9 |
|
Заключение........................................................................................................... |
10 |
||
Приложение А...................................................................................................... |
11 |
||
Приложение Б...................................................................................................... |
13 |
||
Приложение В...................................................................................................... |
16 |
3
1 Введение
Целью работы является получение навыков работы с разными видами сортировки массивов на языке программирования C# в среде разработки Visual Studio 2022.
4

2 ХОД РАБОТЫ
2.1 Сортировка расческой
Сортировка расческой – более совершенный метод пузырьковой сортировки, был придуман для более простой и быстрой сортировки маленьких чисел в конце массива и больших в его начале.
На рисунке 2.1 представлен результат работы программы.
Рисунок 2.1 – Сортировка расческой
В приложении А представлен листинг программы сортировки расческой.
2.2 Быстрая сортировка
Быстрая сортировка – этот алгоритм сегментирует элементы на отсортированные и неотсортированные, начиная со второго элемента. Алгоритм перебирает все элементы второго сегмента и вставляет их в первый сегмент на свою позицию.
На рисунке 2.2 представлен результат работы программ.
Рисунок 2.2 – Быстрая сортировка
В приложении Б представлен листинг программы быстрой сортировки.
2.3 Сортировка вставками
Сортировка вставками – элементы массива разделяются на последовательность приемник и последовательность источник. На каждом
5
шаге, начиная с 1, в последовательности источнике берется один элемент и ставиться в правильную позицию в последовательности приемнике. Количество элементов в последовательности приемнике увеличивается, а в последовательности источнике уменьшается.
На рисунке 2.3 представлена блок-схема алгоритма сортировки вставками.
6

Рисунок 2.3 – Блок-схема сортировки вставками
На рисунке 2.4 представлен результат работы программы. 7

Рисунок 2.4 – Сортировка вставками В приложении В представлен листинг программы сортировки вставками.
8
3 Алгоритмическая сложность
Все три сортировки в худшем случае имеют O(n^2). В лучшем случае быстрая сортировка и сортировка «расческой» имеют одинаковую временную сложность, она равна O(n log(n)), сортировка вставками же имеет сложность O(n). В среднем временная сложность быстрой сортировки и сортировки расческой составляет O(n log(n)), сортировка вставками имеет сложность O(n^2). Быстрая сортировка имеет небольшое преимущество над сортировкой расческой, поэтому можно сделать вывод, что она самая лучшая из трех представленных.
9
Заключение
В ходе выполнения данной практической работы были получены навыки разработки алгоритмов сортировки на языке программирования C#. Были изучены алгоритм сортировки «расческой», алгоритм быстрой сортировки, а также алгоритм вставками.
Наиболее затруднительным был алгоритм быстрой сортировки.
10