- •Алгоритмы и структуры данных
- •231000.62 – «Программная инженерия»
- •Содержание
- •Введение
- •1. Линейные структуры данных
- •1.1. Линейный список
- •1.3.2. Универсальная очередь ограниченного размера
- •2. Нелинейные структуры данных. Бинарные деревья
- •1.2. Стек
- •1.3. Очереди
- •1.3.1. Универсальная очередь неограниченного размера
- •3. Алгоритмы сортировки данных в оперативной памяти
- •3.1. Сортировка массива простым выбором
- •3.2 Сортировка массива вставками (сортировка Шелла)
- •3.3 Сортировка массива обменом (сортировка Хоара)
- •3.4 Сортировка с помощью дерева (пирамиды)
- •3.5 Генерация массива числовых данных случайным распределением значений элементов
- •4. Внутренний поиск данных в таблице
- •1. Последовательный поиск.
- •4.1. Последовательный поиск
- •4.2 Логарифмический (бинарный ) поиск
- •4.3. Поиск с использованием перемешанной таблицы (хэш-таблицы)
- •5. Алгоритмы поиска на графах
- •5.1. Поиск кратчайшего пути. Алгоритм Дейкстры
- •. Поиск кратчайшего пути. Алгоритм Флойда
- •6. Задания для выполнения лабораторных работ
- •6.1. Задания для выполнения лабораторной работы №1 «Линейные структуры данных» Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •6.2 Задания для выполнения лабораторной работы №2 «Нелинейные структуры данных. Бинарные деревья» Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •6.3. Задания для выполнения лабораторной работы №3 «Алгоритмы сортировки данных в оперативной памяти» Вариант 1
- •6.4. Задания для выполнения лабораторной работы №4 «Внутренний поиск данных в таблице» Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •6.5.1. Поиск кратчайшего пути. Алгоритм Дейкстры
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •6.5.2. Поиск кратчайшего пути. Алгоритм Флойда
- •Вариант 15
- •7. Курсовая работа
- •7.3.1. Назначение, цели и задачи курсовой работы
- •7.3.2. Требования к курсовой работе
- •7.3.2.1. Требования к функциональным характеристикам
- •7.3.2.2. Требования к эксплуатационным характеристикам
- •7.3.2.3. Требования к программному обеспечению
- •7.3.2.4. Требования к содержанию курсовой работы
- •7.3.3. Варианты заданий курсовой работы
- •Заключение
- •Список литературы
- •231000.62 – «Программная инженерия»
Вариант 15
Строительная фирма производит строительство газопровода между населенными пунктами. Сеть газопровода изображена в виде графа (рис. 6.30). Расстояние между населенными пунктами (узлами графа) указано в километрах. Найти кратчайшие пути между всеми населёнными пунктами.
7. Курсовая работа
7.3.1. Назначение, цели и задачи курсовой работы
Проектируемое приложение курсовой работы предназначено для формализации и анализа качества алгоритмов решения задачи.
Основная учебная цель выполнения курсовой работы – закрепление теоретических знаний и приобретение практических навыков в программной реализации и анализе сложных структур данных и алгоритмов их обработки.
Основные задачи, решаемые студентом в процессе выполнения курсовой работы:
- программная реализация задачи;
- оценка качества реализованного алгоритма;
- проведение экспериментального исследования алгоритма и анализ его результатов;
- документирование курсовой работы в соответствии требованиями.
7.3.2. Требования к курсовой работе
7.3.2.1. Требования к функциональным характеристикам
Проектируемая система должна обеспечивать выполнение следующих основных функций:
- ввод исходных данных задачи;
- расчет параметров;
- оценка стоимости реализации алгоритма по временным и объемным параметрам;
- хранение исходных данных с возможностью их загрузки для повторной обработки;
- хранение результатов решения с возможностью их повторной визуализации;
- вывод результирующих данных;
7.3.2.2. Требования к эксплуатационным характеристикам
- Модульность.
- Расширяемость.
7.3.2.3. Требования к программному обеспечению
- Среда разработки – MS Visual C++ версии не ниже 6.0
7.3.2.4. Требования к содержанию курсовой работы
К защите курсовой работы должен быть представлен альбом, включающий следующие проектные, программные и эксплуатационные документы:
- Опись альбома.
- Пояснительная записка, включающая разделы:
- аналитический обзор;
- описание алгоритмов решения задачи;
- описание структуры программного комплекса;
- описание структур данных;
- анализ алгоритма;
- описание методики проведения экспериментального исследования;
- описание и анализ результатов проведенного исследования;
- выводы по результатам проведенного анализа.
- Спецификация.
- Описание программы.
- Текст программы (на машинном носителе).
- Руководство пользователя.
- Руководство программиста.
Пояснительная записка оформляется в соответствии с требованиями методического указания к оформлению документации курсовых и дипломных проектов [15].
7.3.3. Варианты заданий курсовой работы
1. Транспортная задача. Метод потенциалов.
2. Эвристические методы поиска решения на графах. Методы экстремума и минимальной стоимости.
3. Динамическое программирование. Метод обратной прогонки.
4. Сортировка файлов простым слиянием.
5. Сортировка файлов естественным слиянием.
6. Транспортная задача. Распределительный метод.
7. Алгоритм нахождения минимального остовного дерева.
8. Алгоритм определения максимального потока.
9. Алгоритм минимизации стоимости потока в сети с ограниченной пропускной способностью.
10. Алгоритм определения критического пути.
11. Методы поиска решения на графах. Методы поиска в ширину и глубину.
12. Алгоритм поиска оптимального кода. Алгоритм Хаффмана.
13. Динамическое программирование. Метод прямой прогонки.
14. Алгоритм поиска оптимального кода. Алгоритм Шеннона-Фено.
15. Алгоритм сжатия данных. Алгоритм «арифметическое кодирование».
16. Структуры данных и алгоритмы для внешней памяти. Внешние деревья поиска.
17. Алгоритм решения задач выбора. Алгоритм с возвратом.
18. Алгоритм решения задач с выбором. Метод ветвей и границ.
19. Остовное дерево наименьшей стоимости (минимального веса). Алгоритм Прима.
20. Остовное дерево наименьшей стоимости (минимального веса). Алгоритм Крускала.
21. Алгоритм разбиения. Задача определения максимальной суммы непрерывной подпоследовательности.
22. Алгоритмы внешней сортировки. Многофазная сортировка.
23. Алгоритмы внешней сортировки. Каскадная сортировка.
24. Алгоритмы на графах. Задача поиска кратчайшего отрицательно взвешенного пути при одном источнике.
25. Алгоритмы на графах. Задача поиска кратчайшего пути в ациклическом графе при одном источнике.
