 
        
        СД Практика 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
