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

сд1

.pdf
Скачиваний:
1
Добавлен:
01.12.2024
Размер:
258.89 Кб
Скачать

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

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

КИБЭВС

СОРТИРОВКИ МАССИВОВ Отчет по практической работе №1 по дисциплине «Структуры данных»

Студент гр. 713-1

_______ В.С. Колосова

_______

Принял:

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

_______ Е.Е. Лунева

_______

Томск 2024

Задание

Реализуйте сортировку расческой, быструю сортировку и еще одну по варианту. Продемонстрируйте на входных данных работоспособность вашего приложения и корректность реализации алгоритма сортировки. Реализуйте соответствующий варианту задания генератор входных данных.

Не используйте дополнительные массивы при реализации всех сортировок.

Размер массива выбирайте в диапазоне 20-100 элементов.

Вариант 8. Третья сортировка - сортировка Шелла. Входные данные представлены только числами двойной точности с плавающей точкой

(использовать double).

 

 

 

Содержание

1

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

4

2

Ход работы.............................................................................................................

5

 

2.1

Сортировка расческой ....................................................................................

5

 

2.2

Быстрая сортировка ........................................................................................

6

 

2.3

Сортировка Шелла..........................................................................................

7

3

Алгоритмическая сложность ...............................................................................

9

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

10

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

11

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

13

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

15

1 Введение

Целью работы является овладение навыками работы с различными

способами сортировки массивов на языке программирования C#.

2 Ход работы

2.1Сортировка расческой

Сортировка расческой реализует следующий алгоритм: расстояние между элементами массива максимально и равно его размеру минус один. Пройдя массив с этим шагом, необходимо поделить шаг на фактор уменьшения (равного примерно 1,247). Затем пройти по списку вновь. Продолжать прохождение массива пока разность индексов не достигнет единицы. В этом случае сравниваются соседние элементы, как и в сортировке пузырьком, но такая итерация одна.

На рисунке 2.1 представлен результат работы программы.

Рисунок 2.1 – Результат сортировки расческой

В приложении А представлен листинг программы сортировки расческой.

2.2Быстрая сортировка

Быстрая сортировка реализует следующий алгоритм: необходимо выбрать из массива опорный элемент. Затем сравнить все остальные элементы с опорным и переставить их так, чтобы разбить массив на два непрерывных отрезка,

следующих друг за другом: «элементы меньшие опорного», «равные и большие». Для отрезков «меньших» и «больших» значений выполнить рекурсивно ту же последовательность операций, если длина отрезка больше единицы.

На рисунке 2.2 представлен результат работы программы.

Рисунок 2.2 – Результат быстрой сортировки

В приложении Б представлен листинг программы быстрой сортировки.

2.3Сортировка Шелла

Сортировка Шелла заключается в сравнении разделенных на группы элементов последовательности, находящихся друг от друга на некотором расстоянии. Изначально это расстояние равно n/2, где n — общее число элементов. На первом шаге каждая группа включает в себя два элемента расположенных друг от друга на расстоянии n/2; они сравниваются между собой,

и, в случае необходимости, меняются местами. Постепенно расстояние между элементами уменьшается вдвое, и, при шаге, равном единице, проход по массиву происходит в последний раз.

На рисунке 2.3 представлена блок-схема алгоритма сортировки Шелла.

Рисунок 2.3 – Блок-схема сортировки Шелла

На рисунке 2.4 представлен результат работы программы.

Рисунок 2.4 – Результат сортировки Шелла

В приложении В представлен листинг программы сортировки Шелла.

3

Алгоритмическая сложность

 

 

 

 

 

 

Временная сложность

Затраты памяти

 

 

 

 

 

В лучшем

В худшем

 

 

 

 

 

Сортировка расческой

O(n log(n))

O(n^2)

O(1)

 

 

 

 

Быстрая сортировка

O(n log(n))

O(n^2)

O(n)

 

 

 

 

Сортировка Шелла

O(n log^2(n))

O(n^2)

O(n)

 

 

 

 

Заключение

В ходе выполнения практической работы были получены навыки работы с различными способами сортировки массивов на языке программирования C#.

Наиболее затруднительной была реализация быстрой сортировки.

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