- •Лабораторный практикум по курсу « Структуры и алгоритмы обработки данных » Оглавление
- •20 Методика выполнения лабораторной работы 28
- •30 Лабораторное задание 45
- •47 Решение задач 72
- •1. Лабораторная работа - Методы сортировки
- •Теоретические сведения
- •Сортировка выбором
- •Сортировка вставкой
- •Сортировка обменом
- •Сортировка Шелла
- •Быстрая сортировка (сортировка Хоара)
- •Сортировка в нелинейных структурах
- •Турнирная сортировка
- •Пирамидальная сортировка
- •Функция сложности алгоритма
- •Лабораторное задание
- •Методика выполнения лабораторной работы
- •Пояснения к выполнению работы.
- •Лабораторная работа -Методы поиска
- •Теоретические сведения
- •Последовательный поиск.
- •Бинарный поиск.
- •Фибоначчиев поиск.
- •Интерполяционный поиск.
- •Поиск по бинарному дереву.
- •Поиск по сбалансированному дереву.
- •Поиск по бору
- •Поиск хешированием
- •Алгоритмы поиска словесной информации
- •Алгоритм Кнута - Морриса - Пратта
- •Алгоритм Бойера - Мура
- •Алгоритм Рабина
- •Лабораторное задание
- •Методика выполнения лабораторной работы
- •Лабораторная работа -Итеративные и рекурсивные алгоритмы
- •Теоретические сведения
- •Итеративный алгоритм.
- •Итеративное вычисление факториала
- •Рекурсивное вычисление факториала
- •Рекурсивные структуры данных
- •Формирование бинарного дерева
- •Рекурсивная процедура обхода узлов дерева сверху-вниз
- •Лабораторное задание
- •Требования к отчету
- •Контрольные вопросы
- •Литература
- •Лабораторная работа - Алгоритмы построения остовного дерева сети
- •Теоретические сведения
- •Алгоритмы Крускала и Прима
- •Пример со схемой микрорайона
- •Пример со схемой компьютерной сети
- •Лабораторное задание
- •Требования к отчёту
- •Литература
- •Задание к лабораторной работе 4
- •Решение задач
- •Лабораторная работа - Алгоритмы нахождения на графах кратчайших путей
- •Теоретические сведения
- •Метод динамического программирования.
- •Пример определения кратчайшего пути №1
- •Пример нахождения кратчайшего пути при условии, что граф неориентированный№2
- •Метод Дейкстры
- •Алгоритм Флойда
- •Алгоритм Йена
- •Алгоритм Беллмана- Форда
- •Литература
- •Лабораторное задание.
- •Требования к отчету
- •Варианты заданий
- •Задание 1: Найти кратчайший путь на графе между тремя парами вершин методом динамического программирования
- •Задание 2: Найти кратчайший путь между тремя парами вершин методом Дейкстры
- •Решение задач
- •Задание на разработку программы
- •Лабораторная работа -Эвристические алгоритмы
- •Теоретические сведения
- •Волновой алгоритм
- •Двухлучевой алгоритм.
- •Пример 2. Осуществить трассировку элементов а и в .
- •Четырехлучевой алгоритм
- •Маршрутный алгоритм.
- •Геометрическая модель задачи о лабиринте
- •Алгоритмы составления расписания.
- •Литература
- •Лабораторное задание.
- •Требования к отчету
- •Решение задач
-
Пример со схемой компьютерной сети
Пусть дана схема компьютерной сети.
Необходимо соединить компьютеры таким образом , чтобы длина проводки была минимальной.
1 2
10
6 7
3 4
11
Определим цикломатическое число графа: γ = n – m +1 = 8 – 5 + 1 = 4
Выбранные вершины |
Невыбранные вершины |
|||
V1 |
V2 |
V3 |
V4 |
|
V5 |
10 |
6 |
7 |
11 |
V2 |
1 |
* |
7 |
3 |
V1 |
* |
* |
2 |
3 |
V3 |
* |
* |
* |
3 |
При просмотре строки таблицы находим минимальную величину веса ребра, выделяем её и больше этот столбец, в котором находится эта величина, в рассмотрении не участвует.
Для построения остовного дерева необходимо просмотреть столбцы таблицы снизу вверх и зафиксировать первое появление минимальной величины.
В итоге получим остовное дерево минимального веса:
-
2
6
3
-
Лабораторное задание
Для проведения лабораторной работы необходимо выполнить следующие действия.
1. Изучить основные понятия теории графов
2. Вызвать систему Ostov1, включающую в себя изучение методов Крускала и Прима.
Система работает в диалоговом режиме с использованием “меню”. Вся необходимая информация во время работы системы отображается на экране дисплея и не требует специальных пояснений.
Для графов, содержащих 10 и 12 вершин построить остовные деревья двумя методами.
По окончании работы выставляется оценка.
3. Вызвать системы Ostov2 и Ostov3 для исследования методов Крускала и Прима.
Результаты записать в тетрадь.
-
Требования к отчёту
Отчёт должен содержать:
-
конспект лабораторной работы;
-
примеры работы методов Крускала и Прима;
-
результаты выполнения работы;
-
выводы по работе;
Контрольные вопросы
-
Что понимается под остовным деревом?
-
Каковы особенности методов Крускала и Прима?
3. В чём состоит методика анализа сложности алгоритмов построения остовного
дерева графа?
-
Литература
-
Т. Кормен, Ч. Лейзерсон, Р. Ривест. Алгоритмы: построение и анализ. М.: МЦНМО, 2000.
-
Д.Кнут Искусство программирования , том 1. Основные алгоритмы. Уч . пос. М.:Изд. Дом " Вильямс ", 2000.
-
Вирт Н. Алгоритмы и структуры данных.: Пер. С англ. - М.: Мир, 2001.
-
Хусаинов Б.С. Структуры и алгоритмы обработки данных. Примеры на языке Си. Учеб. пособие. М : Финансы и статистика, 2004.