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

1 практика

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

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

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

Кафедра комплексной информационной безопасности электронно-

вычислительных систем (КИБЭВС)

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

Студент гр. 711-2

_______ Е. П. Толстолес

_______

Принял:

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

_______ Н.С. Репьюк

_______

Томск 2022

 

 

СОДЕРЖАНИЕ

 

1

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

3

2

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

4

 

2.1

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

4

 

2.2

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

4

 

2.3

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

5

3

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

8

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

9

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

10

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

11

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

12

2

1 Введение

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

3

2Ход работы

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

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

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

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

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

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

Быстрая сортировка вставками – этот алгоритм сегментирует элементы на отсортированные и неотсортированные начиная со второго элемента. Алгоритм перебирает все элементы второго сегмента и вставляет их в первый сегмент на свою позицию.

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

4

Рисунок 2.2 – Быстрая сортировка

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

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

Сортировка методом Шелла - алгоритм сортировки, являющийся усовершенствованным вариантом сортировки вставками. Идея метода Шелла состоит в сравнении элементов, стоящих не только рядом, но и на определённом расстоянии друг от друга.

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

5

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

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

6

Рисунок 2.4 – Сортировка методом Шелла

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

7

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

Сортировка выбором для массива из n элементов имеет время выполнения в худшем, среднем и лучшем случае O(n2), предполагая, что сравнения делаются за постоянное время.

При использовании метода сортировки расчёской сложность алгоритма равняется O(n*log2n).

А сортировка методом Шелла имеет такую же сложность, как и пузырьковая сортировка, то есть O(n2).

8

Заключение

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

Все задания выполнены на языке программирования Python.

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

Отчет был составлен согласно ОС ТУСУР 2021.

9

Приложение А

(обязательное)

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

import random mas = []

a = 100000 count = 0

b = int(input())

for l in range(0,100000): count+=1

x1 = random.randint(1,a) mas.append(x1)

if count==b: break

def comb(m):

step = int(len(m)/1.247) swap = 1

while step > 1 or swap > 0: swap = 0

i = 0

while i + step < len(m): if m[i] > m[i+step]:

m[i], m[i+step] = m[i+step], m[i] swap += 1

i += 1 if step > 1:

step = int(step / 1.247)

comb(mas) print(mas)

10

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