- •Структуры и алгоритмы обработки данных
- •- Ответ на теоретический вопрос следует начинать с номера и полного названия вопроса;
- •Раздел 1 Алгоритмы, основанные на использовании
- •Тема 1.1 Динамические структуры данных и их организация с
- •Тема 1.2 Списковые структуры: стек, очередь, односвязный и
- •Тема 1.3 Бинарные деревья. Основные операции с бинарными
- •Тема 1.4 Прошитые бинарные деревья, операции с ними
- •Тема 1.5 Красно-черные деревья, операции с ними. Решение
- •Тема 3.1 Задачи вычислительной геометрии и методы их
- •Раздел 4 Рандомизированные алгоритмы
- •Тема 4.1 Генерирование случайных чисел, распределенных по
- •Раздел 5 Хеширование и хеш-таблицы
- •Тема 5.1 Функции хеширования. Задачи, решаемые с
- •Раздел 3 Алгоритмы вычислительной геометрии
- •Задания на домашнюю контрольную работу по учебной дисциплине «Структуры и алгоритмы обработки данных»
Раздел 3 Алгоритмы вычислительной геометрии
Тема 3.1 Задачи вычислительной геометрии и методы их
решения
Задачи определения взаимного расположения отрезков, прямых и плоскостей
Алгоритмы построения выпуклой оболочки: алгоритм Грэхема, алгоритм Джарниса
Алгоритм отыскания пары ближайших точек
Алгоритмы нахождения площадей фигур
Литература: [3, с. 810-836]; [7, с. 222-251]
Вопросы для самоконтроля
Опишите взаимное расположение точки и прямой на плоскости.
Опишите взаимное расположение двух прямых на плоскости.
Опишите алгоритм проверки принадлежности точки внутренней области многоугольника.
Какой многоугольник называется простым?
Как найти площадь простого многоугольника?
Дайте определение понятию выпуклой оболочки.
Опишите алгоритмы построения выпуклой оболочки для N точек плоскости.
Опишите методы нахождения корней уравнения: деления отрезка пополам, хорд, Ньютона.
Опишите алгоритмы поиска площади фигуры, ограниченной функциями: средних (левых, правых) прямоугольников, трапеции, парабол.
Раздел 4 Рандомизированные алгоритмы
Тема 4.1 Генерирование случайных чисел, распределенных по
заданным законам. Задачи, решаемые с помощью
генераторов случайных чисел
Генерирование равномерно распределенных случайных чисел: линейный конгруэнтный метод, аддитивный метод Митчелла и Мура, рандомизация перемешиванием
Нормальное распределение: метод полярных координат, метод прямоугольника-клина-хвоста
Показательное распределение: метод логарифма, метод случайной минимизации
Задачи, решаемые с помощью генераторов случайных чисел: статистические вычисления, моделирование систем массового обслуживания
Литература: [4, с. 207-213]
Вопросы для самоконтроля
Опишите линейный конгруэнтный метод генерирования равномерно распределенных случайных чисел.
Опишите аддитивный метод Митчелла генерирования равномерно распределенных случайных чисел.
Опишите метод Мура генерирования равномерно распределенных случайных чисел.
Опишите метод рандомизации перемешиванием.
Опишите метод полярных координат для получения нормально распределенных случайных чисел.
Опишите метод прямоугольника-клина-хвоста для получения нормально распределенных случайных чисел.
Опишите метод логарифма для получения случайных чисел, распределенных по показательному закону.
Опишите метод случайной минимизации для получения случайных чисел, распределенных по показательному закону.
Раздел 5 Хеширование и хеш-таблицы
Тема 5.1 Функции хеширования. Задачи, решаемые с
помощью построения хеш-таблиц
Понятия хеш-функции и хеш-таблицы. Методы хеширования: метод деления, метод середины квадратов, метод свертывания
Коллизии. Методы разрешения коллизий: метод открытой адресации и метод цепочек
Задачи, решаемые с помощью построения хеш-таблиц
Литература: [8, с. 567-597]
Вопросы для самоконтроля
Каков принцип построения хеш-таблиц?
Существуют ли универсальные методы построения хеш-таблиц? Ответ обоснуйте.
Почему возможно возникновение коллизий?
Каковы методы устранения коллизий? Охарактеризуйте их эффективность в различных ситуациях.
Назовите преимущества открытого и закрытого хеширования.
В каком случае поиск в хеш-таблицах становится неэффективен?
Как выбирается метод изменения адреса при повторном хешировании?
В чем заключается суть каждого метода для разрешения коллизии?
Список используемых источников
Кнут, Д. Искусство программирования. Т.1 / Д. Кнут. – М.: Вильямс, 2001. - 976 с.
Кнут, Д. Искусство программирования. Т.2 / Д. Кнут. – М.: Вильям, 2001. - 988 с.
Кормен, Т Алгоритмы: построение и анализ / пер. с англ. под ред. А. Шейя. – М.:МЦНМО, 2002. – 960 с.
Красиков, И. В. Алгоритмы. Просто, как дважды два / И. В. Красиков, И. Е. Красикова. – М.:Эксмо, 2007. – 256 с.
Липский, В. Комбинаторика для программистов / В. Липский. – М: Мир, 1988. – 200 с.
Макконнелл, Дж. Основы современных алгоритмов. / Дж. Макконнелл. – М: Техносфера, 2004. – 368 с.
Окулов, С. М. Программирование в алгоритмах / С. М. Окулов. – М.: БИНОМ. Лаборатория знаний, 2002. – 341 с.
Седжвик, Р. Фундаментальные алгоритмы на С++. Анализ/Структуры данных/ Сортировка/Поиск / пер. с англ. / Роберт Седжвик. – К: Издательство «ДиаСофт», 2001. – 688 с.
Хусаинов, Б. С. Структуры и алгоритмы обработки данных. Примеры на языке Си: учеб. пособие / Б. С. Хусаинов. – М.:Финансы и статистика, 2004. – 464 с.
