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

2 практика

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

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

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

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

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

АЛГОРИТМИЧЕСКАЯ СЛОЖНОСТЬ Отчет по практической работе №2

по дисциплине «Структуры данных»

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

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

_______

Принял:

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

_______ Н.С. Репьюк

_______

Томск 2022

СОДЕРЖАНИЕ

1Введение…………………………………………………………………………....3

2Ход работы………………………………………………………………………….4

2.1Программа для генерации массивов заданной длинны…………………….4

2.2Сортировка расчёской……………………………………………………….4

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

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

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

3Заключение……………………………………………………………………..…11

Приложение А………………………………………………………………………12

2

1 Введение

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

3

2Ход работы

2.1Программа для генерации массивов заданной длинны:

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

Рисунок 2.1 – Работа программы по генерации массива.

Листинг программы представлен в приложении А.

2.2 Сортировка расчёской:

На рисунке 2.2 представлен график зависимости t от n, где n –

количество элементов в массиве, t – время выполнении программы.

4

Рисунок 2.2 – График зависимости n от t.

Таблица 2.1 – Таблица значений n и t.

n

1

20

25

50

100

250

500

1000

 

 

 

 

 

 

 

 

 

t

0.008

0.008

0.008

0.0083

0.008

0.0082

0.008

0.00824

 

 

 

 

 

 

 

 

 

5

На рисунке 2.3 представлен график зависимости n от c, где c -

количество операций, n – размер массива.

Рисунок 2.3 – График зависимости n от c.

Таблица 2.2 – Таблица значений с и n.

n

 

1

20

 

25

50

 

100

 

250

500

 

1000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c

 

1

185

 

254

675

 

1629

 

5089

11965

 

27337

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

На рисунке 2.4

представлен

график

зависимости t

от n, где n –

количество элементов

в массиве, t – время выполнении программы.

6

Рисунок 2.4 – График зависимости n от t.

Таблица 2.3 – Таблица значений n и t.

n

1

20

25

50

100

250

500

1000

 

 

 

 

 

 

 

 

 

t

0.0085

0.0083

0.0082

0.0084

0.0082

0.0082

0.0082

0.0086

 

 

 

 

 

 

 

 

 

На рисунке 2.5 представлен график зависимости n от c, где c -

количество операций, n – размер массива.

Рисунок 2.5 - График зависимости n от c.

7

Таблица 2.4 – Таблица значений с и n.

n

1

20

25

50

100

250

500

1000

 

 

 

 

 

 

 

 

 

c

0

126

172

633

2648

16011

62463

250281

 

 

 

 

 

 

 

 

 

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

На рисунке 2.6 представлен график зависимости t от n, где n –

количество элементов в массиве, t – время выполнении программы.

Рисунок 2.6 – График зависимости n от t.

Таблица 2.5 – Таблица значений n и t.

n

1

20

25

50

100

250

500

1000

 

 

 

 

 

 

 

 

 

t

0.0079

0.008

0.008

0.008

0.0079

0.008

0.0086

0.0082

 

 

 

 

 

 

 

 

 

На рисунке 2.7 представлен график зависимости n от c, где c - количество

операций, n – размер массива.

8

Рисунок 2.7 - График зависимости n от c

Таблица 2.6 – Таблица значений с и n.

n

1

20

25

50

100

250

500

1000

 

 

 

 

 

 

 

 

 

c

0

83

124

325

850

2753

6620

14484

 

 

 

 

 

 

 

 

 

2.5Оценка алгоритмической сложности:

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

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

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

В теории, быстрая сортировка должна получиться самой скоростной и самой простой по количеству перемещений и сочетаний, по факту самой быстрой оказалась сортировка методом Шелла.

9

Таблица 2.7 – Результаты для худшего и лучшего варианта сортировки.

 

Расчёска

Быстрая

Шелла

 

 

 

 

n

100

100

100

 

 

 

 

t лучшее

0.008

0.0082

0.0078

 

 

 

 

t худшее

0.0085

0.0089

0.0082

 

 

 

 

c лучшее

1600

2630

840

 

 

 

 

c худшее

1824

3258

978

 

 

 

 

10

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