- •Лабораторный практикум по курсу « Структуры и алгоритмы обработки данных » Оглавление
- •20 Методика выполнения лабораторной работы 28
- •30 Лабораторное задание 45
- •47 Решение задач 72
- •1. Лабораторная работа - Методы сортировки
- •Теоретические сведения
- •Сортировка выбором
- •Сортировка вставкой
- •Сортировка обменом
- •Сортировка Шелла
- •Быстрая сортировка (сортировка Хоара)
- •Сортировка в нелинейных структурах
- •Турнирная сортировка
- •Пирамидальная сортировка
- •Функция сложности алгоритма
- •Лабораторное задание
- •Методика выполнения лабораторной работы
- •Пояснения к выполнению работы.
- •Лабораторная работа -Методы поиска
- •Теоретические сведения
- •Последовательный поиск.
- •Бинарный поиск.
- •Фибоначчиев поиск.
- •Интерполяционный поиск.
- •Поиск по бинарному дереву.
- •Поиск по сбалансированному дереву.
- •Поиск по бору
- •Поиск хешированием
- •Алгоритмы поиска словесной информации
- •Алгоритм Кнута - Морриса - Пратта
- •Алгоритм Бойера - Мура
- •Алгоритм Рабина
- •Лабораторное задание
- •Методика выполнения лабораторной работы
- •Лабораторная работа -Итеративные и рекурсивные алгоритмы
- •Теоретические сведения
- •Итеративный алгоритм.
- •Итеративное вычисление факториала
- •Рекурсивное вычисление факториала
- •Рекурсивные структуры данных
- •Формирование бинарного дерева
- •Рекурсивная процедура обхода узлов дерева сверху-вниз
- •Лабораторное задание
- •Требования к отчету
- •Контрольные вопросы
- •Литература
- •Лабораторная работа - Алгоритмы построения остовного дерева сети
- •Теоретические сведения
- •Алгоритмы Крускала и Прима
- •Пример со схемой микрорайона
- •Пример со схемой компьютерной сети
- •Лабораторное задание
- •Требования к отчёту
- •Литература
- •Задание к лабораторной работе 4
- •Решение задач
- •Лабораторная работа - Алгоритмы нахождения на графах кратчайших путей
- •Теоретические сведения
- •Метод динамического программирования.
- •Пример определения кратчайшего пути №1
- •Пример нахождения кратчайшего пути при условии, что граф неориентированный№2
- •Метод Дейкстры
- •Алгоритм Флойда
- •Алгоритм Йена
- •Алгоритм Беллмана- Форда
- •Литература
- •Лабораторное задание.
- •Требования к отчету
- •Варианты заданий
- •Задание 1: Найти кратчайший путь на графе между тремя парами вершин методом динамического программирования
- •Задание 2: Найти кратчайший путь между тремя парами вершин методом Дейкстры
- •Решение задач
- •Задание на разработку программы
- •Лабораторная работа -Эвристические алгоритмы
- •Теоретические сведения
- •Волновой алгоритм
- •Двухлучевой алгоритм.
- •Пример 2. Осуществить трассировку элементов а и в .
- •Четырехлучевой алгоритм
- •Маршрутный алгоритм.
- •Геометрическая модель задачи о лабиринте
- •Алгоритмы составления расписания.
- •Литература
- •Лабораторное задание.
- •Требования к отчету
- •Решение задач
-
Четырехлучевой алгоритм
Из начальной и конечной точек выходят одновременно по четыре луча. Лучи движутся строго по заданным направлениям и “затухают”, если достигли края координатной сетки, либо встретили запрещенный элемент.
1
1
1 A 1
1 B 1
1
1
Пример 3.
|
2 |
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
A |
|
|
|
|
|
|
1 |
|
|
1 |
|
|
|
2 |
2 |
1 |
B |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
Маршрутный алгоритм.
Маршрутный алгоритм получил свое название, потому что осуществляет одновременно и формирование фронта и прокладывание трассы. Источником волны на каждом шаге является конечный элемент участка трассы проложенной на предыдущих шагах.
В маршрутном алгоритме рассматриваются восьмиэлементная окрестность исходного элемента.
i-1,j-1
i,j-1
i+1,j-1 i-1,j A
i+1,j i-1,j+1
i,j+1
i+1,j+1
От каждого элемента окружения оценивается расстояние d до конечного элемента B.
d = или d =
Таким образом определяются восемь значений расстояний, из которых выбирается минимальное. Элемент для которого d оказалось минимальным считаем элементом трассы. Процесс повторятся до тех пор пока расстояние не будет равным нулю (d=0) т.е. пока не будет достигнут конечный элемент. Обход запрещенных элементов осуществляется исходя из интуиции разработчика.
Пример:
-
9
B
1
2
7
3
A
4
8
10
5
6