Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
17_Лабораторная_1.docx
Скачиваний:
5
Добавлен:
02.02.2023
Размер:
213.23 Кб
Скачать

Санкт-Петербургский государственный

электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина) (СПбГЭТУ)

Факультет компьютерных технологий и информатики

Кафедра ВТ

Отчет по теме №1

Множества

Выполнил: студент гр. 8091 Гришин И.Д. ___________

Проверил: старший преподаватель Колинько П.Г. ___________

Санкт-Петербург

2020

Содержание

  1. Техническое задание 3

2. Формализация задания 3

3. Контрольные тесты 4

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

5. Результаты измерения времени 5

Выводы 6 Список используемой литературы 7

Приложение 1 8

Приложение 2 10

Приложение 3 12

Приложение 4 14

  1. Цель работы

Научиться представлять множества разными способами и оценить временную сложность алгоритмов для каждого способа, а так же сравнить и оценить разные способы представления множеств.

  1. Задание

Множество, содержащее цифры из A, не являющиеся об­щими для множеств B и C и не встречающиеся в D. То есть E=A|(B|C)¬D

Необходимо решить задание четырьмя способами представления множеств: — массив — список — машинное слово — массив битов

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

3.Контрольные тесты

Рис 1. Проведение всех тестов в одной программе

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

Тип

представления

Массив

Список

Машинное слово

Массив битов

Временная

сложность

5. Результаты измерения времени

Таблица 1. Массивы

Кол-во элементов в исходном множестве

Среднее время обработки

5

1153

6

1373

7

1970

Таблица 2. Списки

Кол-во элементов в исходном множестве

Среднее время обработки

5

1401

6

2044

7

2068

Время обработки машинного слова константное для данного типа данных (int): 2 микросекунды

Время обработки массива бит так же для данного случая близко к константному, т. к. размер массива неизменен в рамках этого задания: 26 микросекунд

6. Выводы

Массивы: Массивы показывают относительно небольшое время выполнения, но являются затратным по объёму памяти (так как память заказывается под каждый элемент)

Списки: Несмотря на объективно лучшую работу списков с памятью, один элемент множества (в виде списка) может занимать по памяти столько, сколько занимает целое множество (в виде машинного слова), а из за работы с памятью данный способ затрачивает в разы больше времени (в пять раз по сравнению с массивом)

Машинное слово: Данный способ представления множества является самым эффективным для выполнения данного задания. Затрачиваемое время минимально по сравнению с другими видами представлений, так же как и объём занимаемой памяти. Недостатком данного способа является невозможность постановки элементов множества в случайном порядке.

Массив битов: Массив битов показывает меньшее время обработки, нежели обычный массив, и является условно константным (не меняется для одного и того же набора в множестве). Количество занимаемой памяти спорно, так как мы заказываем статичное количество символов для каждого множества (равное мощности множества), но при этом каждый элемент весит в среднем в два раза меньше чем элементы обычного множества (по крайней мере в данной работе). Из минусов стоит так же отметить невозможность постановки элементов в случайном порядке, как и в случае с машинным словом