Файл: Отчет по практической работе 2 Оценка сложности и определение эффективности алгоритма по дисциплине Структуры и алгоритмы обработки данных.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 11.12.2023

Просмотров: 172

Скачиваний: 18

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рисунок 15 – Тестирование при n = 100.

Лучший случай

Рисунок 17 – Тестирование при n = 1000.

Лучший случай

Рисунок 23 – Тестирование при n = 1 000 000.

Лучший случай



Обработка результатов


  1. Лучший случай:











Таблица 2 – Selection Sort, лучший случай

n

T(n), мс

Тп(n) = Cф + Mф

Тт(n) = С + М

100

0,046

10 301

10 301

1000

2,257

1 003 001

1 003 001

10 000

201,208

100 030 001

100 030 001

100 000

20 159,500

10 000 300 001

10 000 300 001

1 000 000

2 022 320,000

1 000 003 000 001

1 000 003 000 001




  1. Худший случай:











Таблица 3 – Selection Sort, худший случай

n

T(n), мс

Тп(n)=Cф+Mф

Тт(n)=С+М

100

0,014

12 951

12 951

1000

1,146

1 254 501

1 254 501

10 000

115,184

125 045 001

125 045 001

100 000

12 382,100

12 500 450 001

12 500 450 001

1 000 000

1 536 200,000

1 250 004 500 001

1 250 004 500 001



График зависимости сложности от n


Г рафик 3

Вывод по заданию 2


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

Задание 3

Формулировка задания


Сравнить эффективность двух алгоритмов простых сортировок. Второй используемый алгоритм – Exchange Sort.

Описание математической модели


Осуществляется проход по массиву от 1 элемента до n-ного, сравнивая текущий элемент со всеми последующими. Если какой-то из последующих элементов меньше i-того, то меняем их местами.

Блок-схема алгоритма



Рисунок 25 – блок-схема алгоритма сортировки



Реализация алгоритма





Рисунок 26 – Алгоритм сортировки



Тестирование





Рисунок 28 – Тестирование при n = 100. Лучший случай

Рисунок 27 – Тестирование и отладка при n = 10.






Рисунок 33 – Тестирование при n = 10 000. Худший случай

Рисунок 30 – Тестирование при n = 1000. Лучший случай

Рисунок 29 – Тестирование при n = 100. Худший случай

Рисунок 31 – Тестирование при n = 1000. Худший случай

Рисунок 32 – Тестирование при n = 10 000. Лучший случай





Рисунок 34 – Тестирование при n = 100 000. Лучший случай






Рисунок 35 – Тестирование при n = 100 000. Худший случай




Рисунок 37 – Тестирование при n = 1 000 000. Худший случай

Рисунок 36 – Тестирование при n = 1 000 000. Лучший случай



Обработка результатов


Таблица 4 – Exchange Sort, лучший случай

n

T(n), мс

Тп(n) = Cф + Mф

100

0,036

10 100

1000

2,135

1 001 000

10 000

193,155

100 010 000

100 000

15 030,900

10 000 100 000

1 000 000

1 188 420,000

1 000 001 000 000


Таблица 5 – Exchange Sort, худший случай

n

T(n), мс

Тп(n) = Cф + Mф

100

0,029

24 950

1000

3,287

2 499 500

10 000

297,304

249 995 000

100 000

20 466,900

24 999 950 000

1 000 000

1 740 970,000

2 499 999 500 000


Оценка емкостной сложности


Используется 1 вспомогательная переменная, необходимая для перестановок. Емкостная сложность:

Графики зависимости сложности от n


Г рафик 4

Г рафик 5

Вывод по заданию 3


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

Вывод


В ходе работы приобретены и отработаны практические навыки по:

  • определению сложности алгоритмов сортировки на теоретическом и практическом уровнях;

  • определению емкостной сложности алгоритмов сортировки;

  • реализацией алгоритмов сортировки;

  • определению зависимости (квадратичной/линейной) сложности алгоритма сортировки от объема входных данных;

  • нахождению оптимального алгоритма сортировки с помощью данных, полученных в ходе теоретического расчета и практического выполнения.