5 О-52 Окулов, Станислав Михайлович. Программирование в алгоритмах [Текст] / С. М. Окулов. - 4-е изд. - М. : Бином. Лаборатория знаний, 2013. - 383 с. - (Развитие интеллекта школьников). - ISBN 978-5-9963-848-4 : 342.70 р. Содержание: Предисловие . - С .6 1. Арифметика многоразрядных целых чисел . - С .8 1.1. Основные арифметические операции . - С .8 1.2. Задачи . - С .22 2. Комбинаторные алгоритмы . - С .27 2.1. Классические задачи комбинаторики . - С .27 2.2. Генерация комбинаторных объектов . - С .34 2.2.1. Перестановки . - С .34 2.2.2. Размещения . - С .44 2.2.3. Сочетания . - С .50 2.2.4. Разбиение числа на слагаемые . - С .58 2.2.5. Последовательности из нулей и единиц длины N без двух единиц подряд . - С .64 2.2.6. Подмножества . - С .67 2.2.7. Скобочные последовательности . - С .71 2.3. Задачи . - С .76 3. Перебор и методы его сокращения . - С .87 3.1. Перебор с возвратом (общая схема) . - С .87 3.2. Примеры задач для разбора общей схемы перебора . - С .89 3.3. Динамическое программирование . - С .106 3.4. Примеры задач для разбора идеи метода динамического программирования . - С .108 3.5. Метод ветвей и границ . - С .116 3.6. Метод «решета» . - С .121 3.7. Задачи . - С .126 4. Алгоритмы на графах . - С .158 4.1. Представление графа в памяти компьютера . - С .158 4.2. Поиск в графе . - С .159 4.2.1. Поиск в глубину . - С .159 4.2.2. Поиск в ширину . - С .161 4.3. Деревья . - С .162 4.3.1. Основные понятия. Стягивающие деревья . - С .162 4.3.2. Порождение всех каркасов графа . - С .163 4.3.3. Каркас минимального веса. Метод Дж. Краскала . - С .165 4.3.4. Каркас минимального веса. Метод Р. Прима . - С .168 4.4. Связность . - С .170 4.4.1. Достижимость . - С .170 4.4.2. Определение связности . - С .172 4.4.3. Двусвязность . - С .173 4.5. Циклы . - С .176 4.5.1. Эйлеровы циклы . - С .176 4.5.2. Гамильтоновы циклы . - С .177 4.5.3. Фундаментальное множество циклов . - С .179 4.6. Кратчайшие пути . - С .180 4.6.1. Постановка задачи. Вывод пути . - С .180 4.6.2. Алгоритм Дейкстры . - С .182 4.6.3. Пути в бесконтурном графе . - С .183 4.6.4. Кратчайшие пути между всеми парами вершин. Алгоритм Флойда . - С .186 4.7. Независимые и доминирующие множества . - С .188 4.7.1. Независимые множества . - С .188 4.7.2. Метод генерации всех максимальных независимых множеств графа . - С .189 4.7.3. Доминирующие множества . - С .194 4.7.4. Задача о наименьшем покрытии . - С .195 4.7.5. Метод решения задачи о наименьшем разбиении . - С .196 4.8. Раскраски . - С .202 4.8.1. Правильные раскраски . - С .202 4.8.2. Поиск минимальной раскраски вершин графа . - С .203 4.8.3. Использование задачи о наименьшем покрытии при раскраске вершин графа . - С .207 4.9. Потоки в сетях, паросочетания . - С .208 4.9.1. Постановка задачи . - С .208 4.9.2. Метод построения максимального потока в сети . - С .210 4.9.3. Наибольшее паросочетание в двудольном графе . - С .215 4.10. Методы приближенного решения задачи коммивояжера . - С .219 4.10.1. Метод локальной оптимизации . - С .219 4.10.2. Алгоритм Эйлера . - С .222 4.10.3. Алгоритм Кристофидеса . - С .225 4.11. Задачи . - С .227 5. Алгоритмы вычислительной геометрии . - С .249 5.1. Базовые процедуры . - С .249 5.2. Прямая линия и отрезок прямой . - С .255 5.3. Треугольник . - С .262 5.4. Многоугольник . - С .266 5.5. Выпуклая оболочка . - С .272 5.6. Задачи о прямоугольниках . - С .284 5.7. Задачи . - С .293 6. Избранные олимпиадные задачи по программированию . - С .300 7. Заметки о тестировании программ . - С .358 7.1. О программировании . - С .359 7.2. Практические рекомендации . - С .360 7.3. Тестирование программы решения задачи (на примере) . - С .370 Библиографический указатель . - С .382
Рубрики: Естественные науки. Естествознание--Математика Информационные технологии Аннотация: Искусство программирования представлено в виде учебного курса, раскрывающего секреты наиболее популярных алгоритмов. Освещены такие вопросы, как комбинаторные алгоритмы, перебор, алгоритмы на графах, алгоритмы вычислительной геометрии. Приводятся избранные олимпиадные задачи по программированию с указаниями к решению. Практические рекомендации по тестированию программ являются необходимым дополнением курса. Для школьников, студентов и специалистов, серьезно изучающих программирование, а также для преподавателей учебных заведений. Держатели документа: НБ СГЮА Экземпляры всего: 3 ч/з1 (1), ч/з6 (1), н/а (1) Свободны: ч/з1 (1), ч/з6 (1), н/а (1) |