Программирование в алгоритмах, Окулов С.М., 2014.
Искусство программирования представлено в виде учебного курса, раскрывающего секреты наиболее популярных алгоритмов. Освещены такие вопросы, как комбинаторные алгоритмы, перебор, алгоритмы на графах, алгоритмы вычислительной геометрии. Приводятся избранные олимпиадные задачи по программированию с указаниями к решению. Практические рекомендации по тестированию программ являются необходимым дополнением курса.
Для школьников, студентов и специалистов, серьезно изучающих программирование, а также для преподавателей учебных заведений.

Комбинаторные алгоритмы.
Одна из главных целей изучения темы, помимо традиционных, заключается в том, чтобы учащиеся осознали суть «отношения порядка» на некотором множестве объектов.
На множестве объектов типа Word, Integer, Char, Boolean отношение порядка воспринимается как нечто очевидное. Объяснить, что на типе Real его нет, гораздо сложнее. Однако осознание того факта, что компьютер что-то может делать с каким-то множеством объектов только в том случае (по крайней мере, перебрать их все), если на этом множестве введено какое-то отношение порядка, требует длительной работы. А выработка автоматических навыков «вычленения» отношения порядка на множестве данных конкретной задачи — работа многих дней.
ОГЛАВЛЕНИЕ.
Предисловие.
1. Арифметика многоразрядных целых чисел.
1.1. Основные арифметические операции.
1.2. Задачи.
2. Комбинаторные алгоритмы.
2.1. Классические задачи комбинаторики.
2.2. Генерация комбинаторных объектов.
2.2.1. Перестановки.
2.2.2. Размещения.
2.2.3. Сочетания.
2.2.4. Разбиение числа на слагаемые.
2.2.5. Последовательности из нулей и единиц длины N без двух единиц подряд.
2.2.6. Подмножества.
2.2.7. Скобочные последовательности.
2.3. Задачи.
3. Перебор и методы его сокращения.
3.1. Перебор с возвратом (общая схема).
3.2. Примеры задач для разбора общей схемы перебора.
3.3. Динамическое программирование.
3.4. Примеры задач для разбора идеи метода динамического программирования.
3.5. Метод ветвей и границ.
3.6. Метод «решета».
3.7. Задачи.
4. Алгоритмы на графах.
4.1. Представление графа в памяти компьютера.
4.2. Поиск в графе.
4.2.1. Поиск в глубину.
4.2.2. Поиск в ширину.
4.3. Деревья.
4.3.1. Основные понятия. Стягивающие деревья.
4.3.2. Порождение всех каркасов графа.
4.3.3. Каркас минимального веса. Метод Дж. Краскала.
4.3.4. Каркас минимального веса. Метод Р. Прима.
4.4. Связность.
4.4.1. Достижимость.
4.4.2. Определение связности.
4.4.3. Двусвязность.
4.5. Циклы.
4.5.1. Эйлеровы циклы.
4.5.2. Гамильтоновы циклы.
4.5.3. Фундаментальное множество циклов.
4.6. Кратчайшие пути.
4.6.1. Постановка задачи. Вывод пути.
4.6.2. Алгоритм Дейкстры.
4.6.3. Пути в бесконтурном графе.
4.6.4. Кратчайшие пути между всеми парами вершин. Алгоритм Флойда.
4.7. Независимые и доминирующие множества.
4.7.1. Независимые множества.
4.7.2. Метод генерации всех максимальных независимых множеств графа.
4.7.3. Доминирующие множества.
4.7.4. Задача о наименьшем покрытии.
4.7.5. Метод решения задачи о наименьшем разбиении.
4.8. Раскраски.
4.8.1. Правильные раскраски.
4.8.2. Поиск минимальной раскраски вершин графа.
4.8.3. Использование задачи о наименьшем покрытии при раскраске вершин графа.
4.9. Потоки в сетях, паросочетания.
4.9.1. Постановка задачи.
4.9.2. Метод построения максимального потока в сети.
4.9.3. Наибольшее паросочетание в двудольном графе.
4.10. Методы приближенного решения задачи коммивояжера.
4.10.1. Метод локальной оптимизации.
4.10.2. Алгоритм Эйлера.
4.10.3. Алгоритм Кристофидеса.
4.11. Задачи.
5. Алгоритмы вычислительной геометрии.
5.1. Базовые процедуры.
5.2. Прямая линия и отрезок прямой.
5.3. Треугольник.
5.4. Многоугольник.
5.5. Выпуклая оболочка.
5.6. Задачи о прямоугольниках.
5.7. Задачи.
6. Избранные олимпиадные задачи по программированию.
7. Заметки о тестировании программ.
7.1. О программировании.
7.2. Практические рекомендации.
7.3. Тестирование программы решения задачи (на примере).
Библиографический указатель.
Купить .
По кнопкам выше и ниже «Купить бумажную книгу» и по ссылке «Купить» можно купить эту книгу с доставкой по всей России и похожие книги по самой лучшей цене в бумажном виде на сайтах официальных интернет магазинов Лабиринт, Озон, Буквоед, Читай-город, Литрес, My-shop, Book24, Books.ru.
По кнопке «Купить и скачать электронную книгу» можно купить эту книгу в электронном виде в официальном интернет магазине «Литрес», если она у них есть в наличии, и потом ее скачать на их сайте.
По кнопке «Найти похожие материалы на других сайтах» можно найти похожие материалы на других сайтах.
On the buttons above and below you can buy the book in official online stores Labirint, Ozon and others. Also you can search related and similar materials on other sites.
Теги: учебник по программированию :: программирование :: Окулов :: алгоритм :: комбинаторика












