Санкт-Петербургский государственный
электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина) (СПбГЭТУ)
Факультет компьютерных технологий и информатики
Кафедра ВТ
Отчет по теме №1
Множества
Выполнил: студент гр. 8091 Гришин И.Д. ___________
Проверил: старший преподаватель Колинько П.Г. ___________
Санкт-Петербург
2020
Содержание
Техническое задание 3
2. Формализация задания 3
3. Контрольные тесты 4
4. Временная сложность 5
5. Результаты измерения времени 5
Выводы 6 Список используемой литературы 7
Приложение 1 8
Приложение 2 10
Приложение 3 12
Приложение 4 14
Цель работы
Научиться представлять множества разными способами и оценить временную сложность алгоритмов для каждого способа, а так же сравнить и оценить разные способы представления множеств.
Задание
Множество, содержащее цифры из 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. Выводы
Массивы: Массивы показывают относительно небольшое время выполнения, но являются затратным по объёму памяти (так как память заказывается под каждый элемент)
Списки: Несмотря на объективно лучшую работу списков с памятью, один элемент множества (в виде списка) может занимать по памяти столько, сколько занимает целое множество (в виде машинного слова), а из за работы с памятью данный способ затрачивает в разы больше времени (в пять раз по сравнению с массивом)
Машинное слово: Данный способ представления множества является самым эффективным для выполнения данного задания. Затрачиваемое время минимально по сравнению с другими видами представлений, так же как и объём занимаемой памяти. Недостатком данного способа является невозможность постановки элементов множества в случайном порядке.
Массив битов: Массив битов показывает меньшее время обработки, нежели обычный массив, и является условно константным (не меняется для одного и того же набора в множестве). Количество занимаемой памяти спорно, так как мы заказываем статичное количество символов для каждого множества (равное мощности множества), но при этом каждый элемент весит в среднем в два раза меньше чем элементы обычного множества (по крайней мере в данной работе). Из минусов стоит так же отметить невозможность постановки элементов в случайном порядке, как и в случае с машинным словом