Алгоритмы поиска

Содержание

Задание

Дано множество записей о людях. Каждая запись содержит поля: имя, фамилия, день месяца, месяц и год рождения.

Требуется реализовать указанную в варианте структуру данных (сбалансированное дерево поиска или хэш-таблицу) и операции для работы над ней (вставка и поиск элементов; элемент — запись о человеке). Если совпадающие ключи не допускаются, при вставке нового элемента с существующим ключом он замещает старый элемент; при поиске возвращается один элемент. Если совпадающие ключи допускаются, при вставке нового элемента с существующим ключом он не замещает старый элемент, а “добавляется” к нему; при поиске возвращается вся группа элементов для указанного ключа. Правильность работы алгоритмов проверить с помощью юнит-тестов.

Для реализованной структуры данных замерить время поиска на данных разного размера (использовать генерацию входных данных из предыдущей работы). Сначала все входные данные добавляются в структуру по указанным ключам, далее производится поиск заданного числа ключей (например, 10000 или 100000), время которого замеряется. Ключи для поиска также сгенерировать самостоятельно. Время поиска для тех же данных и ключей сравнить со временем линейного поиска в обычном массиве/списке.

Для деревьев поиска также найти высоту получившегося дерева, для хэш-таблицы со списками — минимальную, максимальную и среднюю длину списка, для хэш-таблицы с прямой адресацией — процент заполненности таблицы и минимальное, максимальное и среднее число проверок при поиске элементов.

В отчет включить:

Псевдокод/описание алгоритмов

Текст программы

Текст юнит-тестов

Результаты замера времени поиска

Работающую программу иметь с собой на занятии

Выдержка из текста

Отчет по программированию, тема "Алгоритмы поиска"

Задание:

Хэш-таблица со связными списками для разрешения коллизий. Ключ: фамилия + первая буква имени. Совпадающие ключи допускаются.В отчете предоставлена работающая программа, юнит-тесты и результаты работы программы (время).

Программа работает верно.

Список использованной литературы

https://docs.google.com/document/d/1zurSefz_X2OgfxDeSV4Mam1bkWargoo9IbZfFkUKOwU/edit#

Похожие записи