Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СД Практика 1

.pdf
Скачиваний:
0
Добавлен:
17.06.2025
Размер:
449.98 Кб
Скачать

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

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)

СОРТИРОВКИ МАССИВОВ Отчет по практической работе №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

Соседние файлы в предмете Структуры данных