Файл: Контрольная работа дисциплина (модуль) Алгоритмы и структуры данных наименование учебной дисциплины (модуля).docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 27
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
(ДГТУ)
Факультет «Информатика и вычислительная техника»
наименование факультета
Кафедра «Вычислительные системы и информационная безопасность»
наименование кафедры
КОНТРОЛЬНАЯ РАБОТА
Дисциплина (модуль) «Алгоритмы и структуры данных»
наименование учебной дисциплины (модуля)
Направление подготовки/специальность 09.03.02 «Информационные системы и технологии»
код наименование направления подготовки/специальности
Направленность (профиль) «Информационные системы и технологии»
Номер зачетной книжки 2057688 Номер варианта 9 Группа ВЗИ21
Обучающийся _______________________ К.Ю. Симавонян
подпись, дата И.О. Фамилия
Контрольную работу проверил _____________________ к.т.н., доцент А.Р. Айдинян
подпись, дата должность, И.О. Фамилия
Ростов-на-Дону
2022
Вариант 9
Задание 1. Сортировка с помощью двоичного дерева
Дана исходная последовательность: 49, 10, 47, 26, 33, 5, 4, 50, 59, 2, 39, 57, 8, 23, 30, 54, 10, 49, 39, 14, 3, 54, 29, 40, 4.
-
Построить дерево сортировки на основе исходной последовательности. -
Определить параметры полученного дерева: глубину дерева и является ли оно сбалансированным. -
Сборка отсортированного массива путем обхода узлов в необходимой последовательности.
Решение:
1 этап.
49 | 10 | 47 | 26 | 33 | 5 | 4 | 50 | 59 | 2 | 39 | 57 | 8 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| | | | | | | | | | | | |
23 | 30 | 54 | 10 | 49 | 39 | 14 | 3 | 54 | 29 | 40 | 4 | |
14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | |
Дерево не является сбалансированным. Глубина равна 7.
2 этап.
-
Левая, корень, правая часть = (левая) 49 (правая) -
(левая) 10 (правая) 49 (левая-нет) 50 (правая) -
раскроем правую ветвь 50 (правая); 50 (левая) 57 (правая-нет); 50, 54, 54, 57. Таким образом получили частично отсортированную последовательность: (левая), 49, 50, 54, 54, 57. -
Осталось раскрыть левую ветвь, от вершины 49, считая ее отдельным деревом с вершиной 10. (левая) 10 (правая) -
Раскроем правую часть от вершины 10, считая ее отдельным деревом с вершиной 47; (левая) 47 (правая=49); (левая) 26 (правая), 47, 49; 14,23,26, (правая), 47, 49; -
Раскроем правую ветвь от вершины 26, считая ее отдельным деревом с вершиной 33: (левая), 33, (правая) 29, 30, 33, (левая=39), 39, (правая=40); 29,30,33, 39,39,40; -
Получили отсортированную правую часть от вершины 10: 14,23,26, 29,30,33, 39,39,40,47,49. -
Отсортируем левую ветвь от вершины 10, считая ее отдельным деревом с вершиной 4: (левая) 4 (правая); (левая) 4 (правая - нет),4,5,8,10; (левая-нет),2, (правая),4,4,5,8,10; 2,3,4,4,4,5,8,10; -
Отсортированная правая ветвь от вершины 49: 4,4,5,8,10; 2,3,4,4,4,5,8,10, 14,23,26, 29,30,33, 39,39,40,47,49. -
Полностью отсортированный массив: 2,3,4,4,4,5,8,10,14,23,26,29,30,33, 39,39,40,47,49, 50, 54, 54, 57.
Задание 2. Построение Хеш-таблицы
Построить 6 хеш-таблиц для слов: health, plaster, bruise, bump, cough, cut, diarrhea, fever, headache, medicine, scratch, shot, sick, sneeze, sunburn, thermometer, tooth
Размер первых трех хеш-таблицы принять равным (количество заданных слов + 4).
Размер последних трех хеш-таблицы принять равным (количество заданных слов)
Решение:
Количество слов 17. Первые три хэш-таблицы будут иметь размер 21.
Для вычисления хэш-функций используем MS Excel.
2. Вычислим значения хеш-функций для всех слов.
S1=ОСТАТ(A13;21)+1
S2=ОСТАТ(СУММ(A13:A23);21)+1
S3=ОСТАТ(1*A13+2*A14+3*A15+4*A16+5*A17+6*A18+7*A19+8*A20+9*A21+10*A22+11*A23;21)+1
Формулы приведены для первого слова.
№ пп | Слово | S1 | S2 | S3 |
| health | 9 | 13 | 8 |
| plaster | 17 | 8 | 19 |
| bruise | 3 | 12 | 11 |
| bump | 3 | 11 | 1 |
| cough | 4 | 13 | 18 |
| cut | 4 | 3 | 1 |
| diarrhea | 5 | 2 | 6 |
| fever | 7 | 15 | 4 |
| headache | 9 | 15 | 10 |
| medicine | 14 | 21 | 6 |
| scratch | 20 | 10 | 6 |
| shot | 20 | 21 | 14 |
| sick | 20 | 1 | 7 |
| sneeze | 20 | 12 | 12 |
| sunburn | 20 | 5 | 3 |
| thermometer | 21 | 15 | 19 |
| tooth | 21 | 16 | 6 |
S1 | | S2 | | S3 | | ||||||
1 | shot | +2 | 1 | sick | | 1 | bump | | |||
2 | tooth | +2 | 2 | shot | +2 | 2 | cut | +1 | |||
3 | bruise | | 3 | cut | | 3 | sunburn | | |||
4 | cough | | 4 | diarrhea | +2 | 4 | fever | | |||
5 | diarrhea | | 5 | sunburn | | 5 | | | |||
6 | bump | +3 | 6 | | | 6 | diarrhea | | |||
7 | fever | | 7 | | | 7 | sick | | |||
8 | cut | +4 | 8 | plaster | | 8 | health | | |||
9 | health | | 9 | | | 9 | medicine | +3 | |||
10 | headache | +1 | 10 | scratch | | 10 | headache | | |||
11 | sick | +12 | 11 | bump | | 11 | bruise | | |||
12 | sneeze | +13 | 12 | bruise | | 12 | sneeze | | |||
13 | sunburn | +14 | 13 | health | | 13 | scratch | +7 | |||
14 | medicine | | 14 | cough | +1 | 14 | shot | | |||
15 | | | 15 | fever | | 15 | tooth | +9 | |||
16 | | | 16 | tooth | | 16 | | | |||
17 | plaster | | 17 | headache | +2 | 17 | | | |||
18 | | | 18 | sneeze | +6 | 18 | cough | | |||
19 | | | 19 | thermometer | +4 | 19 | plaster | | |||
20 | scratch | | 20 | | | 20 | thermometer | +1 | |||
21 | thermometer | | 21 | medicine | | 21 | | |
Таким образом, хеш-таблица, построенная по хеш-функции S1 требует при поиске по одному разу каждого слова 51 лишних операций, хеш-таблица, построенная по хеш-функции S2, требует при поиске по одному разу каждого слова 17 лишних операций, а хеш-таблица, построенная по хеш-функции S3 требует 21 лишнюю операцию. Таким образом, наиболее предпочтительная хеш-функция S2.
Аналогично вычисляем хэш-функции для таблиц размера 17.
S1=ОСТАТ(A13;17)+1
S2=ОСТАТ(СУММ(A13:A17);21)+1
S3=ОСТАТ(1*A13+2*A14+3*A15+4*A16+5*A17+6*A18+7*A19+8*A20+9*A21+10*A22+11*A23;17)+1
№ пп | Слово | S1 | S2 | S3 |
| health | 9 | 4 | 14 |
| plaster | 17 | 7 | 2 |
| bruise | 3 | 7 | 8 |
| bump | 3 | 2 | 12 |
| cough | 4 | 4 | 12 |
| cut | 4 | 11 | 4 |
| diarrhea | 5 | 14 | 7 |
| fever | 7 | 6 | 6 |
| headache | 9 | 2 | 4 |
| medicine | 14 | 12 | 7 |
| scratch | 3 | 5 | 3 |
| shot | 3 | 12 | 8 |
| sick | 3 | 9 | 6 |
| sneeze | 3 | 7 | 5 |
| sunburn | 3 | 8 | 15 |
| thermometer | 4 | 5 | 5 |
| tooth | 4 | 11 | 12 |
S1 | | S2 | | S3 | | |||
1 | thermometer | +14 | 1 | tooth | 7 | 1 | tooth | 6 |
2 | tooth | +15 | 2 | bump | | 2 | plaster | |
3 | bruise | | 3 | headache | 1 | 3 | scratch | |
4 | cough | | 4 | health | | 4 | cut | |
5 | diarrhea | | 5 | scratch | | 5 | sneeze | |
6 | bump | +3 | 6 | fever | | 6 | fever | |
7 | fever | | 7 | plaster | | 7 | diarrhea | |
8 | cut | +4 | 8 | sunburn | | 8 | bruise | |
9 | health | | 9 | sick | | 9 | headache | 5 |
10 | headache | +1 | 10 | bruise | 3 | 10 | medicine | 3 |
11 | scratch | +8 | 11 | cut | | 11 | shot | 3 |
12 | shot | +9 | 12 | medicine | | 12 | bump | |
13 | sick | +10 | 13 | cough | 9 | 13 | cough | 1 |
14 | medicine | | 14 | diarrhea | | 14 | health | |
15 | sneeze | +12 | 15 | shot | 3 | 15 | sunburn | |
16 | sunburn | +13 | 16 | sneeze | 9 | 16 | sick | 10 |
17 | plaster | | 17 | thermometer | 12 | 17 | thermometer | 12 |